Ansibles使用
安裝(centos)
- 使用 yum 安裝
需要先安裝一個
epel-release
包,然后再安裝ansible
即可。
yum install epel-release -y
yum install ansible –y
- ansible 程序結構
安裝目錄如下(yum安裝):
配置文件目錄:/etc/ansible/
執行文件目錄:/usr/bin/
Lib庫依賴目錄:/usr/lib/pythonX.X/site-packages/ansible/
Help文檔目錄:/usr/share/doc/ansible-X.X.X/
Man文檔目錄:/usr/share/man/man1/
- ansible默認host文件
可以在執行ansible的時候指定host文件路徑(-i)
/etc/ansible/hosts
- ansible配置文件查找順序
ansible與我們其他的服務在這一點上有很大不同,這里的配置文件查找是從多個地方找的,順序如下:
- 檢查環境變量ANSIBLE_CONFIG指向的路徑文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);
- ~/.ansible.cfg,檢查當前目錄下的ansible.cfg配置文件;
- /etc/ansible.cfg檢查etc目錄的配置文件。
密鑰設置
在進行ansible的作業之前還需要對要遠程控制的機器做一個免密登錄,方便后續直接執行ansible腳本
- 管理機生成密鑰對
-t 指定加密的方式,默認為rsa
-f filename指定密鑰文件名,不指定提示生成的密鑰放在/root/.ssh/id_dsa
ssh-keygen -t dsa -f /root/.ssh/id_dsa
- 查看密鑰
# ll /root/.ssh/
總用量 12
-rw------- 1 root root 668 5月 14 2020 id_dsa #生成后的私鑰文件
-rw-r--r-- 1 root root 610 5月 14 2020 id_dsa.pub #公鑰文件
-rw-r--r-- 1 root root 544 5月 14 2020 known_hosts
- 分發密鑰
ssh-copy-id user@192.168.6.103 -p 22
# user 為用戶名
# -p 指定端口,有的默認22端口關閉了ssh
使用
- 每次執行ansible的返回的信息,字體顏色解析
黃色:成功執行并伴隨著狀態的改變
綠色:成功執行并且沒有發生狀態的改變
紅色:執行失敗
- ping 模塊使用
-i host : -i 指定hosts文件路徑,可以不使用
/etc/ansible/hosts
-m ping : -m 指定使用ping模塊
slave :為自定義hosts文件中的主機分組名稱
ansible slave -i hosts -m ping
- copy 模塊的使用
-m copy 指定模塊
-a "" 增加參數設置 owner=user 歸屬者 mode=0640 指定文件的權限
# ansible 主機 -m copy -a "src=源文件 dest=目標主機"
ansible slave -i hosts -m copy -a "src=/temp/ansible-test.txt dest=/home/user/"
- shell 模塊使用
直接執行shell指令
-a " " : 為參數設置
ansible slave -i hosts -m shell -a "mv /home/user/cacert.cer /home/user/opt/"