ansible安装
1、 准备环境----关闭防护墙和selinux
一般用ansible不会少于10台以上
环境:
主机:4台 一个控制节点 3个被控制节点
解析:本地互相解析(所有机器)
# vim /etc/hosts
192.168.1.10 ansible-web1
192.168.1.11 ansible-web2
192.168.1.12 ansible-web3
192.168.1.9 ansible-server (控制节点服务器端)
配置ssh公钥认证:控制节点需要发送ssh公钥给所有非被控制节点
[root@ansible-server ~]# ssh-keygen
[root@ansible-server ~]# ssh-copy-id -i 192.168.1.10 #所有机器
2、安装
安装:控制节点
1. 配置EPEL网络yum源
[root@ansible-server ~]# yum install -y epel*
2. 安装ansible
[root@ansible-server ~]# yum install -y ansible
3.查看版本
[root@ansiable-server ~]# ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
4.看帮助
[root@ansible-server ~]# ansible --help
5取消信任
cat /dev/null > authorized_keys
3、ansible基础----inventory主机清单
官方文档: http://docs.ansible.com/ansible/intro_inventory.html#\>
cd /etc/ansible/
配置文件
vim ansible.cfg
查看配置文件:
[root@ansible-server ~]# rpm -qc ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts
-q:---query查询
1.主配置文件:
/etc/ansible/ansible.cfg #主要设置一些ansible初始化的信息,比如日志存放路径、模块、插件等配置信息
2.主机清单文件:
默认位置/etc/ansible/hosts
操作步骤
vim /etc/ansible/hosts
[webservers]
192.168.171.18
192.168.171.19
[dbservers]
192.168.171.18
192.168.171.19
[db37]
192.168.171.18
[db38]
192.168.171.19
192.168.171.17自已信任自已
cat id_rsa.pub > authorized_keys
4、测试
语法:
# ansible <pattern> -m <module_name> -a <arguments>
pattern--主机清单里定义的主机组名,主机名,IP,别名等,all表示所有的主机,支持通配符,正则
-m module_name: 模块名称,默认为command模块
-a arguments: 传递给模块的参数
-o 横着显示(单行显示)
##执行这条命名首先ssh信任要建立好
[root@ansible-web1 ansible]#ansible webservers -m ping -o
[root@ansible-web1 ansible]# ansible db37,db38 -m ping -o
也可以这样执行
[root@ansible-web1 ansible]# ansible 192.168.171.18 -m ping -o
vim /etc/ansible/hosts
[webservers:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_host=192.168.171.18
会报错
ansible vars -m ping -o
查看组内主机列表:
语法:ansible 组名 --list-hosts
ansible webservers --list-hosts
(查看的结果)
hosts (2):
192.168.171.18
192.168.171.19
ansible就是远程批量执行指令的功能(远程执行,远程管理)
Ad-Hoc
执行shell命令:
//在webservers1 远程执行了uptime 在把结果返回回来
[root@ansible-server ~]# ansible webservers1 -m shell -a 'uptime'
//远程添加账号
ansible webservers -m shell -a 'useradd tom'
//查看tom是否存在
ansible webservers -a 'grep tom /etc/passwd'
//查看对方的磁盘空间
ansible webservers -m shell -a "free -h | awk 'NR==2{print \$2,\$3}'"