当前位置: 首页 > article >正文

Ansible在多台服务器上运行python脚本

使用 Ansible 在多台服务器上批量运行 Python 脚本是一种高效且可靠的方式。以下是具体的实现步骤和示例代码:
---
### 1. 准备工作
- **安装 Ansible**:确保您的 Ansible 控制节点已安装 Ansible。如果没有安装,可以通过以下命令安装:
  ```bash
  pip install ansible
  ```
- **配置 Inventory 文件**:在 Ansible 控制节点上创建一个 `hosts.ini` 文件,列出需要运行脚本的目标服务器:
  ```ini
  [servers]
  server1 ansible_host=192.168.1.10 ansible_user=root
  server2 ansible_host=192.168.1.11 ansible_user=root
  server3 ansible_host=192.168.1.12 ansible_user=root
  ```
  根据实际环境修改 IP 地址和用户名。
- **编写 Python 脚本**:将您的 Python 脚本(例如 `script.py`)上传到 Ansible 控制节点,或者确保目标服务器上已存在该脚本。
---
### 2. 创建 Ansible Playbook
创建一个 YAML 文件(例如 `run_python.yml`),定义 Ansible 任务以批量运行 Python 脚本:
```yaml
---
- name: Run Python script on remote servers
  hosts: servers
  become: yes
  tasks:
    - name: Ensure Python is installed
      apt:
        name: python3
        state: present
      when: ansible_os_family == 'Debian'
    - name: Ensure Python3 is installed
      yum:
        name: python3
        state: present
      when: ansible_os_family == 'RedHat'
    - name: Copy Python script to remote server
      copy:
        src: script.py
        dest: /tmp/script.py
        mode: '0755'
    - name: Execute Python script
      command: python3 /tmp/script.py
```
- **解释**:
  1. **Ensure Python is installed**:确保目标服务器上安装了 Python(根据不同的 Linux 发行版使用不同的包管理工具)。
  2. **Copy Python script to remote server**:将 Python 脚本从控制节点复制到目标服务器的 `/tmp` 目录。
  3. **Execute Python script**:在目标服务器上运行 Python 脚本。
---
### 3. 运行 Ansible Playbook
在 Ansible 控制节点上运行以下命令,执行 Playbook:
```bash
ansible-playbook run_python.yml -i hosts.ini
```
- **解释**:
  - `-i hosts.ini`:指定 Inventory 文件路径。
  - `run_python.yml`:Playbook 文件名。
运行后,Ansible 将依次连接到每个目标服务器,执行上述任务,包括安装 Python(如果尚未安装)、复制脚本并运行脚本。
---
### 4. 注意事项
1. **Python 版本**:确保目标服务器上安装了 Python 3(或其他您脚本所需的版本),并根据 Playbook 中的条件语句适配不同的 Linux 发行版。
2. **脚本路径**:确保脚本路径正确,或者修改 Playbook 中的 `dest` 和 `command` 字段。
3. **权限问题**:确保目标服务器上的 `/tmp` 目录对执行用户(通常是 root)有写权限。
4. **日志查看**:运行 Playbook 后,可以通过命令 `ansible-playbook run_python.yml -i hosts.ini --start-at-task="Execute Python script"` 查看任务执行日志。
---
通过以上步骤,您可以轻松使用 Ansible 在多台服务器上批量运行 Python 脚本。如果有其他问题或需要进一步帮助,请随时联系!
 


http://www.kler.cn/a/533432.html

相关文章:

  • springboot+vue+uniapp的校园二手交易小程序
  • 从Transformer到世界模型:AGI核心架构演进
  • 蓝桥杯例题七
  • Ubuntu 24.04 安装 Poetry:Python 依赖管理的终极指南
  • 63.视频推荐的算法|Marscode AI刷题
  • DeepSeekMoE:迈向混合专家语言模型的终极专业化
  • PostgreSQL rownum实现方法
  • Spark--算子执行原理
  • 莱佛士设计之旅:四城巡讲,启发未来设计之路
  • spring security与gateway结合进行网关鉴权和授权
  • GAN(生成对抗网络,Generative Adversarial Network)
  • 【Java】MyBatis动态SQL
  • PostgreSQL / PostGIS:创建地理要素
  • 网络安全--边界安全
  • AI赋能生态学暨“ChatGPT+”多技术融合在生态系统服务中的实践技术应用与论文撰写
  • ArrayList和Araay数组区别
  • AI安全最佳实践:AI云原生开发安全评估矩阵(上)
  • Vue模板语法与常用指令深度解析
  • 【算法】【二分】acwing 算法基础 789. 数的范围
  • 力扣1022. 从根到叶的二进制数之和(二叉树的遍历思想解决)
  • 485网关数据收发测试
  • 防火墙安全策略作业
  • if let 与 let else 的使用指南
  • lmk内存压力测试工具mem-pressure源码剖析
  • 防御与保护——防火墙安全策略配置
  • JDK17主要特性