17,Ansible自動化管理工具服務

1,什麼是Ansible
Ansible 是 python 中的一套模塊,系統中的一套自動化工具,只需要使用 ssh 協議連接及可用來系統管理、自動化執行命令等任務。

2,爲什麼要用Ansible

  1. 可以實現批量系統操作配置
  2. 可以實現批量軟件服務部署
  3. 可以實現批量文件數據分發
  4. 可以實現批量系統信息收集

3,使用Ansible的意義

  1. 提高工作的效率(部署綜合架構)
  2. 提高工作準確度
  3. 減少維護的成本
  4. 減少重複性工作

4,安裝部署

  1. 沒有配置文件(不需要配置)
  2. 不需要啓動服務
  3. 客戶端沒有需要部署任務

5,安裝Ansible
yum -y install ansible
17,Ansible自動化管理工具服務

6,學習ansible主機清單
vi /etc/ansible/hosts
17,Ansible自動化管理工具服務
在上一單元SSH優化部分我們已經改變了端口,採用密鑰登錄,所以這裏這樣寫反之,正常寫
7,學習Ansible模塊調用
首先就是要先打通ssh遠程功能,ansible是建立在ssh通訊上實現的批量管理
1)ping模塊
ansible 主機組名 -m 模塊名
ansible nfs -m ping 調用ping模塊

2)約等於萬能模塊shell (忘記這個命令吧,ansible支持2843個模塊,每個命令都有自己的專門模塊,不要都用shell來代替)
ansible nfs -m shell -a "各種命令"

8,yaml語法,這類語法調用模塊更加細緻,有更多的參數,有個一很大的有點就是不會重複執行,比如你在管理端對100臺客戶機執行腳本
中間報錯了,可以直接再次執行而不報錯 (ansible劇本)
特點:1)以縮進代表不同層級之間的關係
2)對索引有嚴格要求
1)file模塊(每個模塊的具體參數都在官方文檔裏有要自己會讀https://docs.ansible.com/ansible/latest/modules)
ansible nfs -m file -a "path=/tmp/oldboy state=directory mode=644 owner=oldboy group=oldboy"

2)copy模塊
ansible nfs -m copy -a "src=/etc/ssh/sshd_config dest=/tmp/ mode='644'"

3)script腳本模塊
ansible nfs -m script -a "/server/scripts/xx.sh"

4)user用戶模塊(創建www用戶和組uid和gid等於666,描述爲oldboy,沒有家目錄,/sbin/nologin)
ansible nfs -m group -a "name=www gid=666"
ansible nfs -m user -a "name=www uid=666 comment=oldboy shell=/sbin/nologin create home=no"

5)cron模塊
ansible nfs -m cron -a 'name="ntpdate" minute="*/5" job="ntpdate time1.aliyun.com"'

6)yum模塊
ansible nfs -m yum -a "name=ntpdate state=lastest"

例1:搭建NFS服務
NFS服務端:

#!/bin/bash                                             

ansible nfs -m group -a "name=www gid=666 state=present"                        
ansible nfs -m user -a "name=www uid=666 group=666 shell=/sbin/nologin create_home=no"
ansible nfs -m yum -a "name=nfs-utils"                              
ansible nfs -m file -a "path=/data state=directory"                                         
ansible nfs -m copy -a "src=exports dest=/etc/exports backup=yes"   
ansible nfs -m service -a "name=rpcbind state=started enabled=yes"                          
ansible nfs -m service -a "name=nfs state=started enabled=yes"              
ansible nfs -m shell -a "showmount -e"                              

NFS客戶端:

#!/bin/bash                                             

ansible nfs_client -m group -a "name=www gid=666 state=present"                                             
ansible nfs_client -m user -a "name=www uid=666 group=666 shell=/sbin/nologin create_home=no"   
ansible nfs_client -m yum -a "name=nfs-utils"       
ansible nfs_client -m file -a "path=/data state=directory"  
ansible nfs_client -m service -a "name=rpcbind state=started enabled=yes"   
ansible nfs_client -m shell -a "showmount -e 172.16.1.31"       
ansible nfs_client -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章