安裝epel作為安裝ansible的yum源(centos6.4):
安裝ansible:
yuminstall ansible -y
配置檔案:
路徑:/etc/ansible/hosts
配置說明:webservers為組名,下面的ip或網域名稱則是屬於該組的主機。
[webservers]192.168.1.111
192.168.1.112
192.168.1.113
測試:
ansible webservers -m ping -k #對webservers組進行ping操作
由於主控端與被控主機未配置ssh證書信任,需要在執行ansible命令時新增-k引數,要求提供root(預設)賬號密碼。
配置ssh證書信任:
主控端:
生成金鑰對:
ssh-keygen -t rsa #一路回車,在/root/.ssh/目錄下會生成id_rsa(私鑰)、id_rsa.pub(公鑰)金鑰對
將公鑰傳送的被控主機:
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
命令列呼叫模組格式:
ansible 操作目標 -m 模組名(預設模組為command) -a 模組引數#例:ansible webservers -m ping
幫助命令:
ansible-doc 模組名#例:ansible-doc ping
command:執行遠端shell命令
script:在被控端執行主控端上存放的指令碼,相當於scp+shell
shell:執行存放在被控端上的指令碼
例:
ansible webservers -m command -a 'df -h'#
在被控端執行df -h命令
ansible webservers -m script -a '
/root/test.sh'#
在被控端執行test.sh指令碼(test.sh指令碼在主控端)
ansible webservers -m shell -a '
/root/test.sh'#
在被控端執行test.sh指令碼(test.sh指令碼在被控端)
copy:從主控端向被控端拷貝檔案,類似於scp功能
例:
ansible webservers -m copy -a 'src=/root/test.py dest=/tmp owner=root group=root mode=0755'#
將主控端的test.py檔案拷貝到被控端的/tmp目錄下,並且指定檔案的屬主和許可權
stat:獲取遠端檔案狀態資訊,包括atime、ctime、mtime、md5、uid、gid等
例:
ansible webservers -m stat -a 'path=/etc/sysctl.conf'#
獲取被控端/etc/sysctl.conf檔案狀態資訊
ansible 192.168.1.111 -m get_url -a 'url= dest=/tmp/index.html mode=0440 force=yes
'#
yum/apt:linux平台軟體包管理操作
例:
ansible 192.168.1.111 -m yum -a 'name=curl state=latest'#
被控端使用yum安裝最新的curl
ansible 192.168.1.111 -m apt -a '
pkg=curl state=latest'#
被控端使用apt安裝最新的curl
cron:被控端cron配置
例:
ansible 192.168.1.111 -m cron -a "name='check dirs' hour='5,2' job='ls -alh > /dev/null'"#
被控端cron結果:
#ansible: check dirs
* 5,2 * * * ls -alh > /dev/null
mount:被控端分割槽掛載
例:
ansible 192.168.1.111 -m mount -a 'name=/mnt/data src=/dev/sd0 fstype=ext3 opts=ro state=present'#
將/dev/sd0掛載到/mnt/data,許可權為ro
service:被控端系統服務管理
例:
ansible webservers -m service -a '關閉httpd服務
重啟httpd服務
啟動httpd服務
sysctl:被控端sysctl配置
例:
ansible 192.168.1.111 -m sysctl -a 'name="net.ipv4.ip_forward" value=1 sysctl_set=yes state=present reload=yes'#
設定路由**並生效
user:被控端系統使用者管理
例:
ansible 192.168.1.111 -m user -a "name=johnd comment=hohn doe"#
新增使用者john
ansible 192.168.1.111 -m user -a "
name=johnd state=absent remove=yes"#
刪除使用者john
ansible常用模組及playbook
ansible常用模組 ansible模組也就是ansible命令 和linux命令是一樣的 1,ping 檢測伺服器網路是否通ansible webserver m ping 2,shell ansible的shell是直接使用linux命令ansible webserver m shell a ...
Python之 Ansible常用模組及API
1 功能 模組包括command script shell,都可以實現遠端shell命令執行。command 作為ansible的預設模組,可以執行遠端許可權範圍所有的shell命令 script 在遠端主機執行主控端儲存的shell指令碼檔案,相當於scp shell組合 shell 執行遠端主機...
Ansible常用模組
1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行 任務執行等操作。但command模組不支援變數 重定向 管道符等,這些操作需要用shell模組執行 command模組使用詳解 chdir 執行命令前,切換到目...