register注冊變量
可以将輸出資訊作為變量值
示例:
[root@jack7-1 work]# cat register.yml
-
hosts: PC
remote_user: root
tasks:
-
name: test shell
shell: "echo test > /root/test"
register: testvar ==================>将shell輸出的結果指派給testvar變量
-
name: shell return
debug:
var: testvar ======>debug調用testvar
msg: "{{testvar.end}}" ==============>debug調用testvar的内部的參數
-
vars_prompt 提示使用者輸入資訊,并寫入變量
name變量的名稱
prompt 提示使用者輸入資訊
encrypt: "sha512_crypt"使用sha512雜湊演算法,對字元串哈希,主要用于建立密碼
confirm 提示使用者再次送出
private是否隐藏使用者輸入的資訊,預設yes,no不隐藏
示例(建立使用者):
[root@jack7-1 work]# cat c_user_pass.yml
-
hosts: PA
vars_prompt:
-
name: "user"
prompt: "Please input your create user name"
private: no
-
name: "pass"
prompt: "Please input your password"
encrypt: "sha512_crypt"
confirm: yes
-
name: add user
user:
name: "{{user}}"
password: "{{pass}}"
-
指令行傳入變量
--extra-vars 簡寫 -e 适用與ansible ansible-playbook
傳入單個變量值:ansible-playbook var.yml -e 'var1="jack"'
傳入多個變量值:ansible-paybook var.yml -e 'var1="jack" var2="ross"' (空格隔開,否則會報錯)
傳入變量清單:ansible-playbook var.yml -e '{"var_list":["var1","var2","var3",]}'
傳入變量檔案:ansible-playbook var.yml -e '@/etc/ansible/vars/hero.yml'
-
vars:
cmd_var1: This is a default var1
cmd_var2: This is a default var2
name_list: ["jack","ross","wolf","captain"]
-
name: "var on command line"
msg: "{{cmd_var1}},{{cmd_var2}},{{name_list[2]}}"
-
name: "var in file"
msg: I am {{hero_list[2]}}
-
- spander-man
- iron-man
- captain-Amarican
- doctor
- worlf
- sour