Ansible基礎記錄如下:
Ansible架構圖:

ansible核心元件:
- ansible core:Ansible的核心程式
- host iventory:記錄了每一個由Ansible管理的主機資訊,資訊包括ssh端口,root帳号密碼,ip位址等
- core modules:Ansible管理主機之前,先調用core Modules中的子產品,然後指明管理Host Lnventory中的主機,就可以完成管理主機
- custom modules:自定義子產品
- playbook(yaml,jinjia2):YAML格式檔案,多個任務定義在一個檔案中
- connect plugin:連接配接插件,Ansible和Host通信使用
ansible特性:
- 基于python實作,由Paramike,PyYAML和Jinjia2三個關鍵子產品
- 部署簡單,agentless
- 使用ssh協定
- 主從集中化模式
- 支援自定義子產品
- 支援playbook
- 幂等性:一種操作可重複多次結果相同
invetory檔案說明:
檢視子產品幫助資訊:
- ansible-doc -l
- ansible-doc -s module_name
ansible指令應用:
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
-f forks:啟動并發線程數
-m module_name:使用的子產品名
-a args:子產品特有的參數
常見子產品:
- command
- cron
- user
- group
- copy
- file
- ping
- setup
- service
- shell
- script
- yum/apt
playbook:通過yaml将多個子產品組裝起來運作多個任務
組成結構:
Playbooks:
Tasks:任務清單
Variables:變量
Templates:模闆
Handlers:處理器,由某事件觸發執行的操作
Roles:角色
運作說明:
0)yaml文法檢測
ansible-playbook –syntax-check /path/to/playbook.yaml
1)yaml測試運作
ansible-playbook -C /path/to/playbook.yaml
2)運作
ansiable-playbook /path/to/playbook.yml
-t TAGS #給指定的任務定義一個調用辨別
--tags=TAGS #給指定的任務定義一個調用辨別
--skip-tags=SKIP_TAGS #跳過指定的标簽
--start-at-task=START_AT #從哪個任務後執行
--list-tags #檢視标簽
基本結構:
roles:用于階層化、結構化的組織playbook;role能夠根據層次結構自動裝載變量檔案、task以及handlers等,要使用roles隻需要在playbook中使用include指令;roles通過分别将變量、檔案、任務、子產品及處理器放置在單獨的目錄中,并可以便捷地通過include它們的一種機制,角色一般用于基于主機建構服務的場景中;無執行個體,用到時在記錄