1. 程式人生 > >Ansible中幾個常用模塊的使用

Ansible中幾個常用模塊的使用

一定的 要求 數據 cron rem opp move 服務 syn

  這一篇博客寫的是近幾天學到的幾個常用的Ansible模塊,這些模塊可以滿足我們日常的一些運維工作。文中出現的srv代表目標主機清單名稱。

1.Command模塊是在遠程主機執行命令,但有一定的限制。
Command:在遠程主機執行命令,默認模塊,可忽略-m選項

ansible srv -m command -a ‘service vsftpd start’ 
ansible srv -m command -a ‘echo magedu |passwd --stdin wang’ 不成功
此命令不支持 $VARNAME < > | ; & 等,用shell模塊實現

2.Shell模塊,此模塊可以執行所有的shel命令,建議用Shell模塊代替Command模塊。
Shell:和command相似,用shell執行命令

ansible srv -m shell -a ‘echo magedu |passwd –stdin wang’ 
調用bash執行命令 類似 cat /tmp/stanley.md | awk -F‘|’ ‘{print $1,$2}’ &> /tmp/example.txt 這些復雜命令,即使使用shell也可能會失敗
解決辦法:寫到腳本裏,通過copy到遠程主機再執行,再把需要的結果拉回執行命令的機器。

3.Script:運行腳本

-a "/PATH/TO/SCRIPT_FILE“
snsible websrvs -m script -a f1.sh

4.Copy:從服務器復制文件到客戶端

ansible srv -m copy -a “src=/root/f1.sh dest=/tmp/f2.sh owner=wang mode=600 backup=yes” 
如目標存在,默認覆蓋,此處指定先備份

ansible srv -m copy -a “content=‘test content\n’ dest=/tmp/f1.txt” 
利用內容,直接生成目標文件

5.Fetch:從客戶端取文件至服務器端,copy相反,目錄可先tar

ansible srv -m fetch -a ‘src=/root/a.sh dest=/data/scripts’ 

6.File:設置文件屬性

ansible srv -m file -a "path=/root/a.sh owner=wang mode=755“
ansible web -m file -a ‘src=/app/testfile dest=/app/testfile-link 
state=link’
state= absent 缺席,刪除    present 在席

7.Hostname:管理主機名

ansible node1 -m hostname -a “name=websrv” 

8.Cron:計劃任務

支持時間:minute,hour,day,month,weekday
ansible srv -m cron -a “minute=*/5 job=‘/usr/sbin/ntpdate
172.16.0.1 &>/dev/null’ name=Synctime” 創建任務
ansible srv -m cron -a ‘state=absent name=Synctime’ 刪除任務

9.Yum:管理包

ansible srv -m yum -a ‘name=httpd state=latest’ 安裝
ansible srv -m yum -a ‘name=httpd state=absent’ 刪除

10.Service:管理服務

ansible srv -m service -a ‘name=httpd state=stopped‘
ansible srv -m service -a ‘name=httpd state=started‘
ansible srv –m service –a ‘name=httpd state=reloaded’
ansible srv -m service -a ‘name=httpd state=restarted‘

11.User:管理用戶

ansible srv -m user -a ‘name=user1 comment=“test user” uid=2048 home=/app/user1 group=root‘
ansible srv -m user -a ‘name=sysuser1 system=yes home=/app/sysuser1 ’
ansible srv -m user -a ‘name=user1 state=absent remove=yes‘ 刪除用戶及家目錄等數據

12.Group:管理組

ansible srv -m group -a "name=testgroup system=yes“
ansible srv -m group -a "name=testgroup state=absent" 

13.ansible-galaxy

連接 https://galaxy.ansible.com 下載相應的roles

列出所有已安裝的galaxy

ansible-galaxy list

安裝galaxy

ansible-galaxy install geerlingguy.redis

刪除galaxy

ansible-galaxy remove geerlingguy.redis

ansible-pull
推送命令至遠程,效率無限提升,對運維要求較高

Ansible中幾個常用模塊的使用