iT邦幫忙

0

ansible 學習筆記7

  • 分享至 

  • xImage
  •  

ansible 變數,群組,主機三者綜合實例演練
以下範例真不好理解,我用白話先說明再看較容易懂,個人小建議是先想想,好的程式都得分類模組化,依此思路才會容易學:
1.首先我想將有帳/密,port基本資料先放在 all.yml 的檔,因是統一設定故放在一個叫group_vars的目錄較好管理
2.主機為了好管理我們亦建一個目錄叫host_vars,主機可一台一個檔亦可多台一個檔,都叫 host1.yml,host2.yml...依此類推
3.資產清單 建inventory目錄下檔案 hosts,每次都必需指定,結構是第一行是[群組]中括號以下各主機名
4.main.yml 透過 hosts 及 inventory 連結各檔案的變數,群組,主機,將 user,password,http帶出

綜合實例演練
建一個群組group_vars檔案叫 all.yml

ansible_user: xxxx #不是四叉貓哦 
ansible_password: xxxx
ansible_connection: ssh
http_port: 80

建一個主機群 host_vars
一個叫 host1.yml

ip_addr: 192.168.0.69

一個叫 host2.yml

http_port: 443
ip_addr: 192.168.0.70

建一個資產清單 inventory/hosts,抓以上二個 hosts yml,群組是抓 all.yml

[all]
host1
host2

建一個主程式 main.yml 如下:

- name: Hello World
  hosts: all
  gather_facts: no

  tasks:
    - name: test vars
      debug:
        msg: "ansible_user= {{ ansible_user }}, ansible_password= {{ ansible_password }} http_port= {{ http_port }}"

執行以下指令:

ansible-playbook -i inventory/hosts main.yml

成功便會產出以下畫面:由各個功能檔案成功帶出變數

TASK [test vars] *********************************************************************************************************************************************************************************************
ok: [host1] => {
    "msg": "ansible_user= xxxx, ansible_password= xxxx http_port= 80"
}
ok: [host2] => {
    "msg": "ansible_user= xxxx, ansible_password= xxxx http_port= 443"
}

PLAY RECAP ***************************************************************************************************************************************************************************************************
host1                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
host2                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言