
控制节点要求:
· 域名解析(为了方便后期操作,可以不做)
· 配置SSH密钥(ansible是基于ssh实现远程控制)
· 安装Ansible软件
1)Control控制节点
修改/etc/hosts,在文件中手动添加如下内容,修改该文件的目的是做域名解析。
1. [root@control ~]# vim /etc/hosts #修改文件,手动添加如下内容(不要删除文件原来的内容)
2. 192.168.4.253 control
3. 192.168.4.11 node1
4. 192.168.4.12 node2
5. 192.168.4.13 node3
6. 192.168.4.14 node4
7. 192.168.4.15 node5
如何验证?
[root@control ~]# ping node1 #可以使用ping命令依次ping所有域名
配置SSH密钥实现免密码登录(非常重要)
Ansible是基于SSH远程的原理实现远程控制,如果控制端主机无法免密登录被管理端主机,后续的所有试验都会失败!!
1. [root@control ~]# ssh-keygen -f /root/.ssh/id_rsa -N '' #生成ssh密钥
2. #-f指定密钥文件存放在哪个目录,文件叫什么名字,-N ''设置密钥的密码为空
3. [root@control ~]# for i in node1 node2 node3 node4 node5
4. do
5. ssh-copy-id $i
6. done
7. #拷贝密钥到远程主机
8. #提示:拷贝密钥到远程主机时需要输入对方电脑的账户密码才可以!!
9. #拷贝密钥到node1就需要输入node1对应账户的密码,拷贝密钥到node2就需要输入node2对应的密码
如何验证?
警告:如果有任何一台主机远程还需要密码,就不要往下继续操作,后面实验都会失败!!!
[root@control ~]# ssh node1 #使用ssh命令依次远程
所有主机都可以免密码登录
2) 部署Ansible软件(仅Control主机操作,软件包在ansible_soft目录)。
1. [root@control ~]# tar -xf ansible_soft.tar.gz
2. [root@control ~]# cd ansible_soft
3. [root@control ansible_soft]# dnf -y install *
1. [root@control ~]# mkdir ~/ansible
2. [root@control ~]# vim ~/ansible/ansible.cfg
3. [defaults]
4. inventory = ~/ansible/inventory
5. #主机清单配置文件(inventory可以是任意文件名),英语词汇:inventory(清单、财产清单)
6. #forks = 5 #ssh并发数量
7. #ask_pass = True #使用密钥还是密码远程,True代表使用密码
8. #host_key_checking = False #是否校验密钥(第一次ssh时是否提示yes/no)
2) 修改主机清单文件(清单文件名必须与主配置文件inventory定义的一致)
1. [root@control ~]# vim ~/ansible/inventory
2. [test] #定义主机组(组名称任意)
3. node1 #定义组中的具体主机,组中包括一台主机node1
4. [proxy] #定义主机组(组名称任意),英语词汇:proxy(代理人,委托人)
5. node2 #proxy组中包括一台主机node2
6. [webserver]
7. node[3:4] #这里的node[3:4]等同于node3和node4
8. [database]
9. node5
10. [cluster:children] #嵌套组(children为关键字),不需要也可以不创建嵌套组
11. webserver #嵌套组可以在组中包含其他组
12. database
继续阅读
评论