天天看點

ansible子產品register/varsregister注冊變量var: testvar ======>debug調用testvarvars_prompt 提示使用者輸入資訊,并寫入變量指令行傳入變量

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

繼續閱讀