Ansible-Playbook使用Python脚本
目录
Ansible-Playbook使用Python脚本
在某些情况下,我们可能需要在不同类型的机器上面做不同的事情,但是这个事情又有很多逻辑,使用 shell 脚本不易完成,所以我们需要使用 python 完成逻辑的执行。
使用的时候可以将 python 的执行结果注册到 ansible 的变量当中,执行的时候可以传递 ansible-playbook 的参数
- name: register value
shell: echo $(python -c "print('{{ param }}')")
register: value
使用的时候根据 ansible register 的结果使用 value.stdout、value.rc …… 调用即可
{
u'changed': True,
u'end': u'2022-10-04 12:02:51.982893',
u'cmd': [u'echo $(python -c "print('hello world')")'],
u'start': u'2022-10-04 12:02:51.980191',
u'delta': u'0:00:00.002702',
u'stderr': u'',
u'rc': 0, #这个就是命令返回状态,非0表示执行失败
'invocation': {'module_name': 'command', 'module_args': 'echo $(python -c "print('hello world')")'},
u'stdout': u'hello world', #以一个字符串保存命令结果
'stdout_lines': [u'hello world'] #以列表保存命令结果
}