Ansible Config 和 Playbook
阿新 • • 發佈:2018-12-23
Config
Ansible 的配置一般不需要更改,如果需要定製,自定義配置也很簡單,在 Ansible 中,尋找配置按照如下順序:
- ANSIBLE_CONFIG (一個環境變數)
- ansible.cfg (位於當前目錄中)
- .ansible.cfg (位於家目錄中)
- /etc/ansible/ansible.cfg
Playbook
為了方便儲存執行的操作,Ansible 使用了 Playbook 劇本。劇本使用 yml 格式,來避免成為了一種新語言或者指令碼。
Playbook 是有 play 組成的,每個 play 包含了 host,user,tasks。
比如一個 playbook:
--- - hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=/srv/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name=httpd state=started handlers: - name: restart apache service: name=httpd state=restarted
host 便是指定的 hosts 檔案中的主機,可以通過 remote_user 指定在遠端使用的使用者,也可以用 sudo 為遠端操作新增 root 許可權。
Task
作為遠端部署工具,task 是整個 playbook 的重點。每個 task 都會在指定的所有遠端主機執行,如果有執行失敗的主機,將會被跳過。
每個 task 目標在於執行一個冪等(moudle)的操作,因此即使是多次執行也會很安全。一個 task 類似於下面的格式:
tasks: - name: make sure apache is running service: name=httpd state=running
歡迎到微信裡去當吃瓜群眾