在Ansible中执行Python脚本主要有四种方式:1. 使用script模块执行本地脚本,Ansible会自动将其复制到远程主机并运行,适用于控制机存放脚本的场景;2. 使用shell或command模块运行远程主机上已存在的Python脚本,推荐shell模块以支持管道和环境变量;3. 通过shell模块内联执行单行Python代码,适合简单任务;4. 先用copy模块将脚本上传至远程主机,再通过shell模块执行,便于权限管理和调试。选择方法需根据脚本位置、参数传递需求及远程Python环境决定,核心前提是目标主机必须安装Python。

在 Ansible 中执行 Python 脚本有多种方式,最常见的是通过 command、shell 模块直接运行脚本,或使用 script 模块在远程主机上执行本地脚本。以下是几种典型用法:
1. 使用 script 模块执行本地 Python 脚本
如果你有一个写好的 Python 脚本(比如my_script.py)在控制机上,想在远程主机上运行它,可以使用 script 模块。示例:
立即学习“Python免费学习笔记(深入)”;
JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也
- name: 执行本地 Python 脚本 ansible.builtin.script: my_script.py arg1 arg2
Ansible 会将该脚本复制到远程主机并执行。注意:远程主机需要安装 Python 环境。
2. 使用 command 或 shell 模块运行远程已存在的脚本
如果 Python 脚本已经存在于远程主机上,可以直接调用。示例:
立即学习“Python免费学习笔记(深入)”;
- name: 运行远程的 Python 脚本 ansible.builtin.shell: python3 /path/to/remote_script.py
推荐使用 shell 模块,因为它支持环境变量、管道等 Shell 特性。
3. 直接内联执行 Python 代码
对于简单任务,也可以直接运行 Python 一行代码。示例:
立即学习“Python免费学习笔记(深入)”;
- name: 执行 Python 单行命令
ansible.builtin.shell: python3 -c "print('Hello from remote')"4. 结合 copy 和 script 分发并执行脚本
当脚本需要先上传再执行时:- name: 复制脚本到远程主机
ansible.builtin.copy:
src: my_script.py
dest: /tmp/my_script.py
mode: '0755'
- name: 执行已复制的脚本
ansible.builtin.shell: python3 /tmp/my_script.py
这种方式更灵活,便于调试和权限控制。
基本上就这些方法。选择哪种方式取决于脚本位置、是否需要传参、以及远程环境配置。关键是确保目标主机有 Python 可执行环境。










