目录

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']     #以列表保存命令结果
}