一 Ansible的安裝
Ansible的安裝方式有多種多樣,本文以最簡單的方式來進行安裝,
阿裡雲鏡像ansible和epel源,安裝省略!
ansible --version # 2.7.5版本的!
二 相關說明
#(1)必須用普通使用者遠端連接配接
# 建立普通使用者的身份
[[email protected] ~]$ id devops
uid=1001(devops) gid=1001(devops) groups=1001(devops)
說明:由于工作原理是把代碼複制到目标主機,在目标主機上執行,是以目标主機一定要有python!
說明:被管理端也建立普通使用者
# server2和server3做同樣的事情
[[email protected] ~]# useradd devops
[[email protected] ~]# passwd devops
Changing password for user devops.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] ~]# id devops
uid=1000(devops) gid=1000(devops) groups=1000(devops)
三 進行免密認證
[[email protected] anisble]$
ssh-keygen
ssh-copy-id server1:
ssh-copy-id server2:
# 注意測試
四 建立相關配置檔案
[[email protected] Desktop]$ tree anisble/
anisble/
├── ansible.cfg # 配置檔案(順序-->先從目前指令執行目錄-->使用者的家目錄讀取--->全局讀取)
└── inventory # 資源清單!
# ansible.cfg
[defaults]
#(1)資源清單的路徑
inventory = ./inventory
# inventory說明
[test]
172.25.2.1
[prod]
172.25.2.2
測試
[[email protected] anisble]$ ansible all -m ping
172.25.2.1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.25.2.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
說明
ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd"
# test(資源清單)、-m copy(指定子產品)、-a(參數)
說明:預設是command子產品!
# /etc/sudoers 配置檔案修改,在真實的生産環境中沒有這麼大的權限!
93 devops ALL=(ALL) NOPASSWD: ALL
# mansger和server1和server2都做同樣的事情!
切換的說明
[defaults]
#(1)資源清單的路徑
inventory = ./inventory
# 需求:不想每次切換!
#安全的角度-->開放普通使用者的身份
[privilege_escalation]
#(1)是否可以sudo
become=True
#(2)采用sudo的身份
become_method=sudo
#(3)sudo後的使用者身份
become_user=root
#(4)sudo是否需要驗證密碼
become_ask_pass=False
等價:
ansible all -m ping -u devops -b
相關說明
-u(遠端主機的身份)
-u devops -b (遠端切換某一個使用者)
有時候需要擁有root具有的權限-->配置sudo的權限!
預設不會切換的,即使在用戶端主機中配置了sudoers,不會sudo切換使用者執行
預設普通使用者執行某些指令,必須加上sudo參數!
必須在server中聲明-b或者在配置檔案中書寫
顔色的說明:綠色(沒有發生變化)、黃色(變更)、紅色(報錯)、紫色(Warning)
關鍵:幂等機制的了解!
注意:Add-Hoc的方式不讀取資源清單的變量!
三 配置檔案的說明
(1)配置檔案
/etc/ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts
/etc/ansible/roles # 自行下載下傳的roles
(2)可執行的二進制檔案
/usr/bin/ansible-vault # 加密
/usr/bin/ansible # add-hoc的指令
/usr/bin/ansible-galaxy # 下載下傳playbook
/usr/bin/ansible-playbook # 運作playbook
(3)内置的python lib庫檔案