Ansible是一個自動化大量佈署的軟體, 它不用另外在被佈署的主機上安裝Agent端程式,只要在發送端安裝Ansible程式即可,在CentOS 7如果要用Ansible則需要另外安裝Epel-release(目前在7版上的Ansible支援到2.9版)
Ansible主要的設定主要是“ansible.cfg"及"inventory",”*.yaml“,3大設定所組成(以下會用一些範例說明會比較清楚一些)
> ansible.cfg 定義了執行權限,Inventory的路徑
> Inventory 定義了主機的群組
> *.yaml 定義佈署的模組及動作,例如yum模組,就是拿來安裝套件的
也就是說*.yaml就是你的劇本(一堆模組),Inventory就是你的演員(主機包含主機群組),ansible.cfg就是定義誰是導演,ansible-playbook(指令)執行劇本的人員!
佈署架構及環境需求
servera -->Ansible發送端
serverb
serverc
1.每一台主機都需要一個可以佈署的系統帳號,例如使用"ansible"這個user並設定密碼
#useradd ansible
#echo "ansible"| passwd --stdin ansible
2.每一台主機都要設定為了安全性問題,需將ansible user加入sudoers權限
#cat << EOF > /etc/sudores.d/ansible
>ansible ALL=(ALL) NOPASSWD: ALL
>EOF
3.由ServerA的ansible這個user交換金鑰給其他被佈署的Server (如果碰到大量主機需要交換金鑰時可以參考這篇文章的做法http://linux.rhce.taipei/2020/08/sshpass-ssh.html)
[servera]# su - ansible
[servera]$ ssh-keygen
[servera]$ ssh-copy-id ansible@serverb;ssh-copy-id ansible@serverc
*以上都可以用for迴圈的方式建立(我懶得寫啦!!)
4.安裝ansible程式
[servera] #yum install -y epel-release;yum install -y ansible
5.開始使用Ansible建立一個佈署資料夾名為ansible-test,Ansible的基本設定檔“ansible.cfg"分別會依下面的順序載入,注意喔這是有順序的!
1. /path/to/your/ansbile.cfg -->自定的ansible.cfg的路徑
2. ./ansible.cfg -->執行Inventory的那個目錄
3. ~/.ansible.cfg -->執行Inventory的User的Home目錄
4. /etc/ansible/ansible.cfg -->預設的cfg目錄
以下為基本的ansible.cfg,意思是最少只需要以下內容即可以處理大部分的Playbook的執行
[servera]$ mkdir ansible-test
[servera]$ cd ansible-test
[servera ansible-test\]$ vi ansible.cfg
[defaults]
inventory = ./inventory --inventory的目錄
remote_user = ansible --就是誰是這場戲的導演,就是每台主機都要有這個user
ask_pass = [ true | flase ] --執行Playbook的過程中是否詢問密碼
[privilege_escalation]
become = [ true | false ] --是否開啟提升權限功能
become_method = sudo --提升權限的方法是用sudo
become_user = root --提升權限後遠端主機變成誰,例如是root
become_ask_pass = [ true | false ] --執行Playbook的過程中是否詢問密碼
資料來源 >
以前讀書的筆記!
沒有留言:
張貼留言