1. 程式人生 > 實用技巧 >Element NavMenu動態生成導航選單

Element NavMenu動態生成導航選單

如果伺服器數量很多,配置資訊比較多,可利用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