1.0 Ansible怎麼定義變量
- 通過
中的playbook
進行變量的定義play
- 通過
主機清單進行變量定義inventory
- 通過執行
的時候增加playbook
選項進行定義-e
1.0.1 通過Playbook中的vars定義變量
- 在
中通過寫入Playbook
文法定義變量vars
- 通過
進行引用!{{變量名}}
- hosts: test
remote_user: root
vars:
- httpd_package: httpd
tasks:
- name: Install DepencyEnvorment
yum:
name: {{httpd_package}}
state: present
update_cache: yes
複制
1.0.2 通過定義變量檔案進行使用
- 定義一個名字為
的變量配置檔案public_vars.yaml
depence: ['openssl-devel','pcre-devel','zlib-devel']
複制
注意: 當你引用了變量檔案中的變量,請在讀取變量的時候增加雙引号 ""
- hosts: test
remote_user: root
vars_files:
- ./public_vars.yaml
- ./public_vars2.yaml # 如果是多個變量的話
tasks:
- name: "Install De"
yum:
name: "{{depence}}" # 通過雙引号去引入變量内容,不然會報錯
state: present
update_cache: no
複制
1.0.3 通過編輯inventory主機清單進定義
- 這種方法一般用的很少
[test]
10.1.6.205
[test:vars]
file_name=group_sys
複制
官方推薦的方法: 在項目目錄中建立兩個變量目錄和
host_vars
group_vars
group_vars
mkdir host_vars; mkdir group_vars
複制
建立一個同名檔案,用于寫入變量内容
必須與hosts清單中的組名保持一緻,如果不同名會報錯。但是如果你想要多個配置檔案使用同一個組中的變量,隻需要在建立一個
group_vars/all
檔案,所有組可用!
all
[root@bogon ~]# cat group_vars/test
file_name: group_sys
複制
host_vars
- 在
中建立一個檔案,檔案名與host_vars
清單中的主機名稱要保持完全一緻,如果是IP位址,則建立相同IP位址的檔案即可inventory
vim host_vars/10.1.6.205
[root@bogon ~]# cat host_vars/10.1.6.205
file_name: group_sys
複制