1. 程式人生 > >Ansible Config 和 Playbook

Ansible Config 和 Playbook

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

歡迎到微信裡去當吃瓜群眾