部署Ansible
ansiblle具有如下特点:
1、部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
2、默认使用SSH协议对设备进行管理;
3、主从集中化管理;
4、配置简单、功能强大、扩展性强;
5、支持API及自定义模块,可通过Python轻松扩展;
6、通过Playbooks来定制强大的配置、状态管理
7、对云计算平台、大数据都有很好的支持;
安装ansible
centos系统: yum install ansible -y
ubuntu系统: apt install ansible
查看ansible版本
ansible --version
定义主机清单
vim /etc/ansible/hosts
[test_servers] 192.168.1.11 ansible_ssh_user=root 192.168.1.12 ansible_ssh_user=root 192.168.1.13 ansible_ssh_user=root 192.168.1.14 ansible_ssh_user=root
- [test_servers]:定义一个主机组(可自定义),通过名字test_servers来代表所有主机
- ansible_ssh_user=root:意思是ansible的各个节点是通过root用户执行操作,可根据系统具体情况换成对应的用户,例如(ubuntu、centos)
建立密钥连接
本地root用户与被监控机root用户建立免密连接
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.11
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.12
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.13
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.14
测试连通性
ansible test_servers -m shell -a "hostname" #获取test_servers组中服务器的用户名
扩展
处于安全考虑,需加密/etc/ansible/hosts配置文件。加密之后,编辑/etc/ansible/hosts文件、执行ansible命令都需输入密码。
ansible-vault encrypt /etc/ansible/hosts
编辑加密文件,需要输入加密的密码
ansible-vault edit /etc/ansible/hosts --ask-vault-pass
执行ansible命令时也需要输入密码
ansible prx_syn -m shell -a "hostname" --ask-vault-pass
注:ansible-vault的其他使用方法如下
创建加密文件 ansible-vault create file 编辑加密文件 ansible-vault edit file 重置密码 ansible-vault rekey file 加密已有文件 ansible-vault encrypt file 解密文件 ansible-vault decrypt file 查看文件 ansible-vault view file