iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
0

一、前情提要

在之前packer的說明,提到在build的過程當中,機器跑起來之後會有各種Provisioners,基本的像是一行一行Shell指令(Shell Provisioner),另一個就是這次要介紹的Ansible(Ansible Provisioner)
packer_process_with_ansible.png

二、安裝Ansible

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt-get install ansible
  • 驗證安裝結果:ansible --version
    verify_ansible_installation.png

三、流程示意圖

ansible process.png

  • Playbooks:Ansible對一(群)機器,進行系統設定,軟體安裝|佈署時所使用的設定檔(YAML)(一個或多個)。
  • Plays:一個Playbook可以包含一個或多個Play,每個Play有各自要做的事,Play之間可能有先後關係。從上圖中,可以發現一個play可能會對應「一組電腦」。官網舉例:你可以對「web主機群」進行一些「系統設定」步驟,再對「db主機群」進行一些「系統設定」步驟後,再回到「web主機群」進行進一步的設定…。
  • Hosts and Users:每個Play參與的「機器」(一台或多台)及「遠端機器使用者」(root or others), 進行相關設定步驟(tasks)。
  • Tasks:每個Play需要進行的「工作任務列表」,依序執行,並套用至所有的「機器群」。
  • Modules:每個工作任務(task),就是執行一個module。該模組可以在遠端機器根據參數(Args)來執行,完成該工作任務。
  • Handlers:當module對系統進行「改變」,收到通知(notify)時,進行相關處理(task)。module執行多次應該要有相同的結果(冪等:idempotent)。所以這些通知(notify)。會在「工作任務列表」結束時。才由被通知的handler執行「一次處理」。(如上圖黑色鈴鐺所示)。

待續…


上一篇
建立各種平台上的「機器」並產生「映像檔」 > Packer III
下一篇
IT自動化工具。設定系統,佈署安裝軟體 > Ansible II
系列文
AWS高手同事離職後不止30天30

尚未有邦友留言

立即登入留言