Skip to content

Latest commit

 

History

History
81 lines (58 loc) · 1.47 KB

8_vars.md

File metadata and controls

81 lines (58 loc) · 1.47 KB
  1. vars

  • vars 変数化
- hosts: all
  sudo: yes
  vars:
    - nginx_version: 1.8.0-1.el6.ngx
  tasks:

    ~中略~

    - name: Install nginx
      yum: name=nginx-{{ nginx_version }} state=present
  • vars: => 変数を宣言する

  • 変数を適用する場所に {{ }} で囲って変数を配置

    • jinja2 template format
  • vars_file 変数を格納したファイルを読み込む

- hosts: all
  sudo: yes
  vars_file:
    - vars.yml
  tasks:

    ~中略~

    - name: Install nginx
      yum: name=nginx-{{ nginx_version }} state=present

$ cat vars.yml
- nginx_version: 1.8.0-1.el6.ngx
  • vars_prompt 変数のプロンプト入力
- hosts: all
  sudo: yes
  vars_prompt:
    - name: "create_user_name"
      prompt: "Please enter user name"
      private: no
  tasks:
    - name: create user
      user: name={{ create_user_name }} group=devs shell=/bin/bash

$ ansible-playbook site.yml -i hosts
Please enter user name:
  • playbook実行最初にプロンプト表示して待機

  • private: yes => マスク

  • --extra-vars 実行時に変数を渡す

- hosts: all
  sudo: yes
  tasks:
    - name: create user
      user: name={{ create_user_name }} group=devs shell=/bin/bash

$ ansible-playbook site.yml -i hosts --extra-vars '{"create_user_name":"dev-user"}'
  • ファイルも渡せる --extra-vars "@extra-vars.yml"

  • もっと強力なgroup_vars / host_vars (後述)


< 7. include || 9. template >