Ansible中幾個常用模塊的使用
阿新 • • 發佈:2018-10-04
一定的 要求 數據 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中幾個常用模塊的使用