变量可以用在很多地方,比如在我们的 playbook 里面 ... 可以在这个 play 里添加一些变量,用一个 vars ... 在它下面就是定义的一些变量 .. 你也可以把变量放到 yaml 格式的文件里,这样这里可以用一个 vars_files ,然后下面列出这些包含变量的文件 ...
我们先定义一个变量,名字是 user_name ... 再给它指定一个值 ..
然后再去找一个地方用一下这个变量 .. 比如这个添加用户这个任务 .. 把要添加的用户的用户名换成一个变量 .. 先用一组引号,然后是两组花括号 .. 里面是变量的名字 .. 这里就是 user_name ...
在其它的想要使用同样值的地方,你都可以使用这个变量来表示 .. 这样以后你想使用不同的用户名的话,只需要修性声明这个变量的地方就行了 ..
再添加一个变量 .. 名字是 hosts ... 让它的值等于 all .. 然后把 play 的 hosts 的值换成这个变量 ..
再去试一下 ... 运行一下这个 playbook ... 限制一下标签 ... 一切正常 ...
ansible-playbook app.yml -t user
在运行 playbook 的时候我们也可以手工指定变量的值 ... 再试一下 ... 用一个 --extra-vars 选项 ... 它的简写形式是 -e .. 然后是变量的名字还有对应的值 .. 设置一下 hosts 变量的值 .. 让它等于 manager ..
运行一下 ... 你会发现,这次运行 playbook 影响的就是 manager 这个群组下面的主机 ...
ansible-playbook app.yml -t user -e 'hosts=manager'