ansible-playbook劇本基礎(一)
阿新 • • 發佈:2018-10-23
centos7 opp serve write mct -c 實驗 blog remote ansible的劇本是使用yaml語言進行編寫的,基本語法如下:
基本語法:
1、大小寫
2、同級別要對齊,縮進表示層級
3、縮進不允許使用Tab鍵
4、縮進空格數不規定,相同元素區分即可
支持的數據結構:
1、對象:鍵值對集合,又稱映射/哈希/字典
例如:name:example 鍵:值
2、數組:一組按次序排列的值,又稱序列/列表/
例如:-apple
3、純量:單個的、不再分的值
例如:number:12.30
sure:true
play-book劇本
通過tasks調用ansible的模板將多個play組織在一個playbook中運行。
palybook構成部分:
(1)tasks:任務,相當於執行事務(2)variables:變量(定義場景:hosts文件;劇本中;命令中)
(3)templates:模板
(4)handlers:處理器,滿足條件,觸發執行操作
(5)roles:角色
一個簡單的playbook小示例:
實驗環境:兩臺centos7,一臺ansible服務器,一臺測試機。
ansible服務器地址:192.168.71.128
測試機服務器地址:192.168.71.129
vim /opt/book.yml #首先創建一個以.yml為結尾的文件
- hosts: webserver #hosts定義了配置文件中的組名 remote_user: root #劇本中的演員:root用戶,也可以是你推送秘鑰的任意用戶 tasks: #任務,以下是執行什麽任務 - name: download apache #自行定義的名稱 yum: name=httpd #指定模塊,模塊後跟相對應的操作 - name: stopped firewalld service: name=firewalld state=stopped - name: stopped selinux command: ‘/usr/sbin/setenforce 0‘ - name: copy index.html template: src=/opt/index.html dest=/var/www/html/index.html #這裏的模板要註意,需要創建推送的文件並寫入你指定的內容。 - name: started apache service: name=httpd state=started
檢查yml文件中語法的正確性
ansible-playbook book.yml --syntax-check #檢查yaml語法
ansible-playbook book.yml --list-tasks #檢查tasks任務
ansible-playbook book.yml --syntax-hosts #檢查生效的主機
ansible-playbook book.yml --start-at-task=‘Copy Nginx.conf
執行過程如下:
效果圖如下:
playbook劇本一些常用的操作
1、觸發器調用
- hosts: webserver #定義主機組 vars: #定義變量 http_port: 80 max_clients: 200 users:root tasks: #執行的任務 - 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: #處理器,給notify調用的命令,不調用不進行任何操作。 - name: restart apache service: name=httpd state=restarted
2、執行錯誤,跳過改操作繼續執行
- hosts: webserver
remote_user: root
tasks:
- name: create mysql
user: #這裏不添加任何的實質性操作,會報錯
ignore_errors: true #添加該行後出錯跳過,繼續執行
- name: apache status
command: ‘systemctl status httpd‘
ansible-playbook劇本基礎(一)