Ansible是用Python寫的自動化運維工具割以,你如果需要管理維護好多主機,需要做批量操作应媚,部署严沥,任務(wù)等,他是個不錯的選擇中姜。
Ansible是基于模塊工作的消玄,Ansible本身沒有批量部署的能力跟伏。真正具有批量部署的是ansible所運行的模塊。模塊的內(nèi)容會在后面重點介紹翩瓜。
必備知識
想要高效的學(xué)習(xí)Ansible受扳,必須熟悉某一發(fā)行的 Linux 系統(tǒng) (Ubuntu, CentOS),至少需要了解以下內(nèi)容兔跌。
- SSH連接遠(yuǎn)程服務(wù)器
- 基本的Bash命令
- 文件權(quán)限及處理
- 環(huán)境變量相關(guān)
- 簡單的編寫shell腳本
你還需要一臺服務(wù)器勘高,如果沒有可以在本地新建虛擬機,我建議搭建至少兩臺坟桅,以便了解的Ansible的批處理能力华望。
搭建虛擬機非常簡單,你可以搜一下VirtualBox和Vagrant仅乓。
Ansible特點
- 簡單易學(xué)
- 使用SSH協(xié)議與受控機器進行通信赖舟,一般服務(wù)器默認(rèn)有SSH服務(wù),Ansible也被成為agentless(去客戶端的)
- Ansible主要使用YAML格式作為自己的DSL格式及配置文件格式夸楣。
- Ansible自帶很多模塊宾抓,基于模塊工作
Ansible將部署邏輯放在一個稱為"playbook”的YAML文件中。通常豫喧,文件名是playbook.yml石洗。
組織受控機器的邏輯被放在inventory文件中。它是ini格式的嘿棘,默認(rèn)文件名為hosts劲腿。
這兩個文件構(gòu)成了Ansible自動化部署的基礎(chǔ)。
只要運行ansible-playbook --inventory hosts --user vagrant --ask pass playbook.ymI
命令鸟妙,輸入SSH登錄時用戶vagrant的密碼焦人,就可以執(zhí)行我們描述好的部署邏輯了。
為簡單起見重父,我們使用用戶名和密碼的方式登錄花椭。更安全的方式是使用SSH密鑰登錄。
以上就是對Ansible的基本介紹房午。
如果想更深入地學(xué)習(xí)矿辽,請前往Ansible官網(wǎng)。
Ansible的隱喻
了解Ansible的隱喻對于了解Ansible背后的設(shè)計有一定的幫助郭厌。Ansible的隱喻很簡單:
Ansible是導(dǎo)演袋倔,受控機器列表(inventory) 為演員列表,開發(fā)者則是編劇折柠。開發(fā)者只要把劇本(playbook.yml) 寫好宾娜,Ansible拿著劇本與invenstory一對上號,演員就會按照劇本如實表演扇售,不會有任何個人發(fā)揮前塔。
參考
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html?highlight=ansible_user
官方提供的playbook的大量例子
https://github.com/ansible/ansible-examples