ansbile 編寫和運行playbook

Playbook以YAML格式編寫,擴展名爲yml。開頭由三個破折號(---)組成。末尾三個(...)作爲文檔結束標記。

示例:

上例中,一個play有三個鍵:name 、host和tasks。

  •   name相當於備註,說明了本play的用途。
  •   host 指定對其運行play中的任務的主機,將主機模式取爲值,如清單中受管主機或組的名稱。
  •    tasks 指定該play運行的任務的列表。

運行palybook

  ansible-playbook命令用於運行palybook。 playbook的名稱作爲參數傳遞。如:   ansible-playbook site.yml

配置Playbook執行的輸出詳細程度

選項 描述
-v 顯示任務結果
-vv 任務結果和任務配置都會顯示
-vvv 包含關於與受管主機連接的信息
-vvvv 增加了連接插件相關的額外詳細程度選項,包括受管主機上用於執行腳本的用戶,以及執行的腳本

ansible-palybook  --syntax-check  +playbook名稱,用於驗證playbook的語法。  -c 選項對palybook執行空運行,會報告在執行該playbook時將發生什麼更改,但不會對受管主機進行任何實際的更改。

PLAY中的遠程用戶和特權升級

hosts:
  - servera
  - serverb
  - serverc

  示例:

- name: /etc/hosts is up to date
  hosts: datacenter-west
  remote_user: automation  # 定義遠程用戶
  become: yes     #啓用特權升級
  becom_method; sudo  #指定特權升級的方法爲 sudo

  tasks:
    - name: server.example.com in /etc/hosts
      lineinfile:
        path: /etc/hosts
        line: '192.0.2.42 server.example.com server'
        state: present

ansible-doc -s + 模塊名稱  會生成示例輸出。

playbook語法變化

  •   #  井號右側的所有內容都是註釋 。
  • 字符串用單引號或者雙引號 擴起。編寫多行字符串有兩種方式。可以使用豎線(|)字符表示要保留字符串中的換行字符。也可以使用大於號(>)字符來表示換行字符轉換成空格並且行內的引導空白將被刪除。
  • YAML字典。 以縮進塊的形式編寫 鍵值對集合,如:
name:svcrole
svcservice: httpd
svcport: 80
  • yaml列表   使用普通單破折號語法編寫的列表:
hosts:
  - servera
  - serverb
  - serverc

Ansible 變量

  命名變量,變量的名稱必須以字母開頭,並且只能含有字母、數字和下劃線。

  定義變量,可以設置三個基本的範圍級別:

  •   全局範圍: 從命令行或ansible配置設置的變量
  • Play範圍:在PLAY 和相關結構中設置的變量
  • 主機範圍:由清單、事實收集或註冊的任務,在主機組和個別主機上設置的變量

playbook變量 常見方式是將變量放在playbook開頭的vars塊中:

- hosts: all
  var_files:
    - var/users.yml

在palybook中使用變量

引用變量,可將變量名稱放在雙花括號{{}}內。在任務執行時,Ansible 會將變量替換爲其值。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章