我有一个 python 脚本,它可以检索我的远程节点的 IP 地址,作为我的 ansible playbook 的预任务,我想运行此脚本并设置 IP 地址。Ansible 中是否有命令可以让我执行此操作?
答案1
和委托给可以控制操作的运行位置。
直接来自 Ansible 文档:
---
- hosts: webservers
serial: 5
tasks:
- name: Take out of load balancer pool
ansible.builtin.command: /usr/bin/take_out_of_pool {{ inventory_hostname }}
delegate_to: 127.0.0.1
这将在 ansible 主机上运行命令。其实没什么特别的!
链接到 Ansible 文档关于该主题。
答案2
是的你可以
- name: Run local script
hosts: localhost
connection: local
gather_facts: false
tasks:
- name: Execute script
command: /path/to/your/script.py
register: script_output
- name: Print script output
debug:
var: script_output.stdout
或者像 proxx 提到的那样,你可以使用委托给
- name: Run local script on remote host
hosts: your_remote_node
gather_facts: false
tasks:
- name: Execute script on control machine
command: /path/to/your/script.py
register: script_output
delegate_to: localhost
- name: Print script output
debug:
var: script_output.stdout