1. gamisan9999

    No comment

    gamisan9999
Changes in body
Source | HTML | Preview
@@ -1,135 +1,135 @@
どうも情弱氏の俺です。
vars/main.ymlをrole default variablesと勘違いしていた話です。
`Ansible 2.0.0.2` での話です。
http://docs.ansible.com/ansible/playbooks_roles.html#role-default-variables
-http://docs.ansible.com/ansible/playbooks_variables.html#id8
+http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
をよく読みましょうという話です。
使い回しの効くいい感じのプレイブック目指すなら`role_name/defaults/main.yml`に書こうという話です。
# overrideできなくて死ぬ
- tree
```
orenomac$ tree roles/mysql
roles/mysql
├── binaries
├── vars
│   └── main.yml
├── files
├── handlers
├── tasks
│   ├── main.yml
│   └── mysql_client.yml
└── templates
└── my.cnf.j2
```
- vars/main.yml
```
mysql_client:
install: true
version: "5.6"
mysql_server:
install: false
version: "5.6"
```
- hosts
こーするじゃないですか。
overrideだと思ってて
```
- hosts: orenomassiiiiiiiinnnnnnn
user: ec2-user
vars:
mysql_server:
install: true
version: "5.6"
sudo: true
roles:
- mysql
```
- ansible-playbook
ファー`mysql_server.install`がoverrideされてない
```
TASK [mysql : debug] ***********************************************************
ok: [orenomassiiiiiiiinnnnnnn] => {
"mysql_server": {
"install": false,
"version": "5.6"
}
}
```
# overrideできて生き延びた
- tree
```
orenomac$ tree roles/mysql
roles/mysql
├── binaries
├── defaults
│   └── main.yml
├── files
├── handlers
├── tasks
│   ├── main.yml
│   └── mysql_client.yml
└── templates
└── my.cnf.j2
```
- defaults/main.yml
```
mysql_client:
install: true
version: "5.6"
mysql_server:
install: false
version: "5.6"
```
- hosts
今度こそoverride
```
- hosts: orenomassiiiiiiiinnnnnnn
user: ec2-user
vars:
mysql_server:
install: unko
version: "5.6"
sudo: true
roles:
- mysql
```
- ansible-playbook
ファーできた
```
TASK [mysql : debug] ***********************************************************
ok: [orenomassiiiiiiiinnnnnnn] => {
"mysql_server": {
"install": unko,
"version": "5.6"
}
}
```