使用 Ansible 在本地主机上运行本地脚本

使用 Ansible 在本地主机上运行本地脚本

我有一个 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

相关内容