<style> .txt_center{ text-align: center; } .big_txt{ font-size: large; } </style> # Inventory - Group and Host 從單一文件改為資料夾結構目錄 ### inventory 不含變數的版本 ```yaml [群組名稱] 名稱 ansible_host=IP ansible_connection=ssh ansible_ssh_pass=密碼 ansible_user=用戶 ``` 不含變數的範例版本 ```yaml [group1] user1 ansible_host=1.1 ansible_connection=ssh ansible_ssh_pass=123 ansible_user=abc user2 ansible_host=1.2 ansible_connection=ssh ansible_ssh_pass=123 ansible_user=abc ``` ### inventory - 含變數的版本 <p class="txt_center big_txt" >可以把相同東西提出為群組變數</p> ```yaml [群組名] 名稱 ansible_host=IP_address # 群組變數 [群組名:vars] ansible_connection=ssh ansible_ssh_pass=vagrant ansible_user=vagrant ``` 含變數的範例版本 ```yaml [group1] user1 ansible_host=1.1 user2 ansible_host=1.2 [group1:vars] ansible_connection=ssh ansible_ssh_pass=vagrant ansible_user=vagrant ``` <h2 class="txt_center">補充說明 inventory 檔案中變數優先級別</h1> :::warning #### 優先級別最高 - command line >> - ansible-playbook -e variable=xxx playbook.yml #### 適用於個別電腦差異 - 主機名.yml #### 不採用groups hosts 資料夾架構時可以使用 - inventory文件 >>> ansible.cfg 檔內的 inventory 所指定的路徑檔 #### 適用於多台電腦共用的設定 - 群組名.yml ::: #### 將 Inventory 改為資料夾結構, 在inventory/group_vars 及 inventory/host_vars目錄下定義 ``` ├── inventory │   ├── group_vars │   │   └── 群組名.yml │   ├── host │   └── host_vars │   ├── 主機名.yml │   └── 主機名.yml └── main.yml ``` #### 群組名.yml ```yaml http_port: 80 ansible_connection: ssh ansible_ssh_pass: vagrant ansible_user: vagrant ``` #### 主機名.yml ```yaml http_port: 443 ``` ###### tags: `Ansible setting`