Ansible的环境准备与安装配置
创始人
2025-05-28 05:11:38

目录

一,Anbiblbe的环境准备

1,需要准备三台虚拟主机

2,三台虚拟机均需开启防火墙,开启selinux(无需操作,默认开启)

3,网络配置:在NAT模式下,配置至少一个可上网的静态ip

4,修改主机名

5,确保三台主机时间一致

 6,控制端通过主机名免密 

二,Ansible安装与配置

1,配置centos8的基础源

2,配置epel扩展源

3,安装ansibl

案例一:

控制主机和受控主机通过root用户以免密验证远程控制住受控主机实验实施对应任务

案例二:

控制主机连接受控主机通过普通用户以免密验证远程控制住受控主机实验实施特权指定操作


一,Anbiblbe的环境准备

1,需要准备三台虚拟主机

2,三台虚拟机均需开启防火墙,开启selinux(无需操作,默认开启)

3,网络配置:在NAT模式下,配置至少一个可上网的静态ip

(1)控制端主机server配置静态ip192.168.206.100

(2)受控端主机node1配置静态ip192.168.206.111

(3)受控端主机node2配置静态Ip192.168.206.222

4,修改主机名

(1)控制端主机server

[root@server ~]# hostnamectl set-hostname server.example.com
[root@server ~]# bash
[root@server ~]# hostname

(2)受控主机node1

[root@bogon ~]# hostnamectl set-hostname node1.example.com
[root@bogon ~]# bash
[root@node1 ~]# hostname

(3)受控主机node2

[root@bogon ~]# hostnamectl set-hostname node2.example.com
[root@bogon ~]# bash
[root@node2 ~]# hostname

5,确保三台主机时间一致

查看三台主机的时间是否一致

(1)控制端主机server的时间如下

[root@server ~]# date

(2)受控端主机noe1的时间如下

[root@node1 ~]# date

(3)受控端主机noe2的时间如下

[root@node2 ~]# date

可以看到三台主机的时间一致 ,如果不一致,使用命令

timedatectl set-timezone Asia/Shanghai   修改为同一时区

 6,控制端通过主机名免密登录受控主机

(1)配置控制端server的主机名文件

[root@server ~]# vim /etc/hosts

192.168.206.111 node1 node1.example.com

192.168.206.222 node2 node2.example.com

 

(2)配置受控端node1的主机名文件

[root@node1 ~]# vim /etc/hosts

192.168.206.100 server server.example.com

192.168.206.222 node2 node2.example.com

(3)配置受控端node2的主机名文件

[root@node2 ~]# vim /etc/hosts

192.168.206.100 server server.example.com

192.168.206.222 node1 node1.example.com                                 

(4)在控制端的目录/root/.ssh/id_rsa下面生成公钥

[root@server ~]# ssh-keygen -t RSA

也可以通过静默方式产生公钥

ssh-keygen -t RSA   -P ' '  -q  -f /root/.ssh/id_rsa

-t RSA   生成公钥的方式

-P ' '    

 -q  静默

-f  指定存储文件

(5)把公钥发送到node1与node2主机上,首次发送要进行秘钥和密码验证

[root@server ~]# ssh-copy-id -i node1

[root@server ~]# ssh-copy-id -i node2

(6)查看公钥是否发送到受控端node1

[root@node1 ~]# cd /root/.ssh[root@node1 .ssh]# ll

(7)查看公钥是否发送到受控端node2

[root@node2 ~]# cd /root/.ssh
[root@node2 .ssh]# ll

(8)此时可以在控制端免密登录node1与node2

[root@server ~]# ssh node1

[root@server ~]# ssh node2

 

二,Ansible安装与配置

 ,

1,配置centos8的基础源

(1)在yum.repos.d的目录下创建文件base.repo

[root@server yum.repos.d]# vim base.repo

(2)在base.repo文件中配置cectos8的基础源

[AppStream]

name=1

baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/

gpgcheck=0

[BaseOS]

name=2

baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/

gpgcheck=0

 

 

2,配置epel扩展源

(1)安装epel安装包

​
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm​

(2)将 repo 配置中的地址替换为阿里云镜像站地址

[root@server yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=http[root@server yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

 

3,安装ansible

yum install ansible -y

查看是否安装成功

ansible --version

 

 

 

案例一:

控制主机和受控主机通过root用户以免密验证远程控制住受控主机实验实施对应任务

(1)配置控制端server的主机名文件

[root@server ~]# vim /etc/hosts

192.168.206.111 node1 node1.example.com

192.168.206.222 node2 node2.example.com

 

(2)配置受控端node1的主机名文件

[root@node1 ~]# vim /etc/hosts

192.168.206.100 server server.example.com

192.168.206.222 node2 node2.example.com

(3)配置受控端node2的主机名文件

[root@server ~]# ssh-keygen -t RSA
[root@node2 ~]# vim /etc/hosts

192.168.206.100 server server.example.com

192.168.206.222 node1 node1.example.com                                 

(4)在控制端的目录/root/.ssh/id_rsa下面生成公钥

[root@server ~]# ssh-keygen -t RSA

(5)把公钥发送到node1与node2主机上,首次发送要进行秘钥和密码验证

[root@server ~]# ssh-copy-id -i node1

[root@server ~]# ssh-copy-id -i node2

(6)通过server主机连接到Node1主机并查看主机名

[root@server ~]# ssh node1 hostname

案例二:

控制主机连接受控主机通过普通用户以免密验证远程控制住受控主机实验实施特权指定操作

控制端主机通过sudo提权;受控端主机通过sudoers文件授权

(1)确保控制端server和受控端node1,node2都有一个相同的普通用户

[root@server ~]# id redhat

[root@node1 .ssh]# id redhat

[root@node2 .ssh]# id redhat

(2) 控制端以redhat身份免密远程登录受控端

以redhat身份在主控端生成公钥

[redhat@server ~]$ ssh-keygen -t rsa -P '' -q -f ~/.ssh/id_rsa
[redhat@server ~]$ ls -l ~/.ssh/id_rsa

把控制端生成的公钥发送的受控端node1,node2上

[redhat@server ~]$ ssh-copy-id -i redhat@node1

[redhat@server ~]$ ssh-copy-id -i redhat@node2

免密登录验证

[redhat@server ~]$ ssh node1 hostname

(3)此时控制端的普通用户redhat没有执行特权指令的权限

[redhat@server ~]$ ssh node1 useradd user1

(4)在受控主机node1,node2上进行授权

授权方法一:

在受控主机node1打开sudoers文件进行授权配置

[root@node1 .ssh]# vim /etc/sudoers

redhat  ALL=(ALL)       NOPASSWD:ALL

redhat被提权的用户 

ALL=(ALL)    被授权的主机=授权用户的身份

NOPASSWD:ALL      后期普通用户获得权限后不需要密码验证: 授予哪些权限

授权方法二:

在/etc/sudoers文件中的wheel组中配置免密验证,并把普通用户加入到wheel组中,那么wheel组中的所有用户都可以获取root的所有特权且不需要验证密码

[root@node2 .ssh]# vim /etc/sudoers

允许wheel组中的用户可以获取root的所有命令特权且不需要密码验证

%wheel  ALL=(ALL)       NOPASSWD:ALL

把redhat用户加入到wheel组中

[root@node2 .ssh]# gpasswd -a redhat wheel

(5)测试授权结果

控制端免密远程登录到受控端node1创建一个新用户user1

[redhat@server ~]$ ssh node1 sudo useradd user1[redhat@server ~]$ ssh node1 id user1

相关内容

热门资讯

cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...