JavaScript HTML DOM Script 物件
如果伺服器數量很多,配置資訊比較多,可利用Ansible Playbook 編寫劇本,從而以更加簡單得方式實現任務處理得自動化與流程化
playbook是由一個或多個模組組成,使用不同得模組完成一件事情
playbook通過yaml語法識別描述的狀態檔案,副檔名是yaml
1、YAML 三板斧
- 縮排
YAML使用一個固定的縮排風格表示層級結構,每個縮排由兩個空格組成,不能使用TAB(預設,因為一個tab=4空格)
解決方案:
[root@m01 ~]# vim .vimrc
set tabstop=2
儲存並推出,使用tab就是縮排2個空格
- 冒號
以冒號結尾的除外,其他所有冒號後面所有必須有空格
- 短橫線
表示列表項,使用一個短橫槓加一個空格
多項使用同樣的縮排級別的同一列表
2、Playbook的核心元素
hosts:主機清單
tasks:任務
vars:變數
handlers:特定條件觸發的任務
template:包含了模組語法的文字檔案
ansible playbook 安裝apache示例
[root@m01 ~]# cd /etc/ansible/ [root@m01 ansible]# mkdir ansible_playbook
為了統一管理所有ansible指令碼都放到/etc/ansible/ansible_playbook
[root@m01 etc]# vim /etc/ansible/hosts #檢查客戶端配置
1、準備apache的配置檔案
[root@m01 ansible_playbook]# mkdir -p /etc/ansible/ansible_playbook/conf
從其他專案中複製http.conf到 /etc/ansible/ansible_playbook/conf 下
修改配置檔案 :埠
[root@m01 conf]# sed -i 's#Listen 80#Listen 8080#g' httpd.conf
編寫apache安裝啟動劇本:
[root@m01 ansible_playbook]# cd /etc/ansible/ansible_playbook [root@m01 ansible_playbook]# vim apache.yaml
- hosts: web #主機名 tasks: # renw - name: Install Httpd #執行名稱 yum: name=httpd state=installed - name: Configure Http.conf copy: src=./conf/httpd.conf dest=/etc/httpd/conf/httpd.conf notify: Restart Http Service #監控http.conf有無發生改變,如果變化,就觸發 Restart Http Service - name: Start Http Service service: name=httpd state=started enabled=yes handlers: #觸發任務 - name: Restart Http Service service: name=httpd state=restarted #重啟
儲存並推出:
命令格式:
ansible-playbook [option] filename
ansible-playbook 常用命令:
-C #模擬執行
--list-hosts #列出劇本主機清單
--list-tags #列出劇本標記
--list-tasks #列出劇本任務
--syntax-check #檢測語法
[root@m01 ansible_playbook]# ansible-playbook --syntax-check apache.yaml #檢查語法
[root@m01 ansible_playbook]# ansible-playbook --list-hosts apache.yaml #主機清單
[root@m01 ansible_playbook]# ansible-playbook --list-tasks apache.yaml #任務
[root@m01 ansible_playbook]# ansible-playbook -C apache.yaml #模擬執行劇本
[root@m01 ansible_playbook]# ansible-playbook -C apache.yaml PLAY [web] ************************************************************************************ TASK [Gathering Facts] ************************************************************************ ok: [192.168.1.67] TASK [Install Httpd] ************************************************************************** changed: [192.168.1.67] TASK [Start Http Service] ********************************************************************* changed: [192.168.1.67] PLAY RECAP ************************************************************************************ 192.168.1.67 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@m01 ansible_playbook]# ansible-playbook apache.yaml #執行劇本
[root@m01 ansible_playbook]# ansible-playbook apache.yaml PLAY [web] ************************************************************************************ TASK [Gathering Facts] ************************************************************************ ok: [192.168.1.67] TASK [Install Httpd] ************************************************************************** changed: [192.168.1.67] TASK [Start Http Service] ********************************************************************* changed: [192.168.1.67] PLAY RECAP ************************************************************************************ 192.168.1.67 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0