Ansible特点:
1.部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作,默认使用SSH协议对设备进行管理。
2.有大量常规运维操作模块,可实现日常绝大部分操作。
3.配置简单、功能强大、扩展性强。
4.支持API及自定义模块,可通过Python轻松扩展。
5.通过Playbooks来定制强大的配置、状态管理。
6.轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可。
技术要点:
1.在管理节点的/etc/hosts 增加node的ip与hostname
2.把密钥拷贝给各个节点
3.管理节点安装ansible
4. 创建管理目录,必须cd到管理目录内,创建ansible.cfg和inventory主机清单
1.Control控制节点,修改/etc/hosts,在文件中手动添加如下内容,修改该文件的目的是做域名解析。
[root@control ~]# vim /etc/hosts #修改文件,手动添加如下内容(不要删除文件原来的内容)
192.168.4.253 control
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3
192.168.4.14 node4
192.168.4.15 node5
[点击并拖拽以移动]
2.配置SSH密钥实现免密码登录
[root@control ~]# ssh-keygen #生成ssh密钥
[root@control ~]# for i in node1 node2 node3 node4 node5
do
ssh-copy-id $i
done
#拷贝密钥到远程主机
3.部署Ansible软件(仅Control主机操作)
[root@control ~]# tar -xf ansible_soft.tar.gz
[root@control ~]# cd ansible_soft
[root@control ansible_soft]# dnf -y install *
4.配置系统配置文件
[root@control ~]# mkdir ~/ansible
[root@control ~]# vim ~/ansible/ansible.cfg
[defaults]
inventory = ~/ansible/inventory
#主机清单配置文件(inventory可以是任意文件名),英语词汇:inventory(清单、财产清单)
#forks = 5 #ssh并发数量
#host_key_checking = False #是否校验密钥(第一次ssh时是否提示yes/no)
5.配置主机清单(清单文件名必须与主配置文件inventory定义的一致)。
[root@control ~]# vim ~/ansible/inventory
[test] #定义主机组(组名称任意)
node1 #定义组中的具体主机,组中包括一台主机node1
[proxy] #定义主机组(组名称任意),英语词汇:proxy(代理人,委托人)
node2 #proxy组中包括一台主机node2
[webserver]
node[3:4] #这里的node[3:4]等同于node3和node4
[database]
node5
[cluster:children] #嵌套组(children为关键字),不需要也可以不创建嵌套组
webserver #嵌套组可以在组中包含其他组
database