准备两台redhat虚拟机,这里两台虚拟机均为rhel-8.5
一台虚拟机命名为server,另一台虚拟机命名为node1
[root@localhosts ~]# hostnamectl set-hostname server.example.com
两台虚拟机都需要挂载yum源
[root@node1 ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@node1 ~]# mount /dev/sr0 /mnt
mount: /mnt: /dev/sr0 already mounted on /run/media/root/RHEL-8-5-0-BaseOS-x86_64.
[root@node1 ~]# vim /etc/yum.repos.d/base.repo
进入后里面输入
然后在aliyun上下载epel包
[root@server ~]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
将两个源写入
[root@server ~]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@server ~]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
进入编辑(将以下内容写入)
[root@server ~]# vim /etc/yum.repos.d/Centos-stream.repo
然后就到了very关键的一步,下载ansible,屏住呼吸成败在此一举
[root@server ~]# yum install ansible -y
然后耐心等待他下载安装,看到complete!就说明已经是成成的了
查看一下版本
配置本地域名解析写自个儿的ip和名字(两台主机都需要配置!!!)
[root@server ~]# vim /etc/hosts
配置密钥---这里是设置免密登录(一直直接按回车直到成功)
[root@server ~]# ssh-keygen
然后将公钥发送给node1
[root@server ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub node1
然后就可以直接登录上node1了
已经成成的登录上node1了
然后输入这
[root@server ~]# ansible-config init --disabled >>/etc/ansible/ansible.cfg
输入完后进入编辑器
[root@server ~]# vim /etc/ansible/ansible.cfg
将第155行改成下图这样
然后配置主机清单
[root@server ~]# vim /etc/ansible/hosts
在最下面加入受控主机
加入完成后,又到了最惊心动魄的测试环节!!!
[root@server ~]# ansible node1 -m command -a 'whoami'
wuhu~~这里就已经是成成的了,(下面有几种颜色)
- 黄色 执行成功并且对目标主机做出变更
- 绿色 执行成功并且不需要做出任何改变
- 红色 执行失败
- 紫色 显示警告
到这儿ansible咱们就已经是完事了噢~~
然后就是完成一些操作
1、配置主机清单 下表列出了有关四个受管主机的信息。您将根据主机的用途、所在的城市以及它所属的部署环境,将每个主机分配给多个组以进行管理。此外,美国城市组(罗利和山景城)必须设为组***\*us\****的子项(children),这样美国的主机就可以作为一 个组进行管理。 servera.lab.example.com | Web服务器 | 罗利raleigh | 开发development | | serverb.lab.example.com | Web服务器 | 罗利 | 测试testing | |
serverc.lab.example.com | Web服务器 | 山景城mountainview | 生产production | | serverd.lab.example.com | Web服务器 | 伦敦london | 生产 |
在主机清单下配置
[root@server ~]# vim /etc/ansible/hosts
在刚加入的主机名单下面,写入
[web]
servera.lab.example.com
serverb.lab.example.com
serverc.lab.example.com
serverd.lab.example.com
[raleigh]
servera.lab.example.com
serverb.lab.example.com
[mountainview]
serverc.lab.example.com
[london]
serverd.lab.example.com
[development]
servera.lab.example.com
[testing]
serverb.lab.example.com
[production]
serverc.lab.example.com
serverd.lab.example.com
[us:children]
raleigh
mountainview
检测一下
okkkk~这里就都已经成成的了
2、ansible四个案例
[root@server ~]# vim /etc/ansible/ansible.cfg
在编辑器这里写入
inventory = /etc/ansible/hosts
remote_user = redhat
ask_pass = False
host_key_checking = False
在node1上加入一个用户,这里是redhat,然后将公钥发送
[root@server ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub redhat@node1
测试一下
然后在node1上设置sudo权限
[root@node1 ~]# vim /etc/sudoers
继续在server上
然后继续写入,同样都进入的是这个
[root@server ~]# vim /etc/ansible/ansible.cfg
再把455行的加上#号,不然会冲突
然后就可以测试啦
okkk~成成的了