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 ansible3.查看版本[root@ansiable-server ~]# ansible --version
ansible 2.9.27config file = /etc/ansible/ansible.cfgconfigured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python2.7/site-packages/ansibleexecutable location = /usr/bin/ansiblepython 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 --help5取消信任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.19192.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 -ovim /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.18192.168.171.19ansible就是遠程批量執行指令的功能(遠程執行,遠程管理)
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}'"