【问题标题】:Ansible playbook for remote copy and script execution用于远程复制和脚本执行的 Ansible 剧本
【发布时间】:2016-06-28 11:56:37
【问题描述】:

我希望在 ansible 中编写一个剧本,它将首先将我的包传输到远程主机,然后运行一个脚本。详细地说,假设我在本地机器上有 apache 包,需要将它 scp/rsync 到远程节点 A 和 B。然后我有我的脚本在 A 和 B 上安装包,检查它是否安装正确,然后仔细检查配置文件等。此脚本应仅在传输成功时运行。

编写了下面的剧本,应该满足上述要求。请确认是否需要进一步改进。提前致谢!

剧本:

---
 - hosts: droplets
   remote_user: root

   tasks:

    - name: Copy package to target machines
      synchronize: src=/home/luckee/apache.rpm dest=/var/tmp/

    - name: Run installation and verification script
      script: /home/luckee/apache_install.sh
      register: result

    - name: Show result
      debug: msg="{{ result.stdout }}"
...

【问题讨论】:

    标签: shell ansible ansible-playbook


    【解决方案1】:

    这样安装脚本只有在复制任务发生变化(在进程中执行)并成功退出时才会运行:

     ---
     - hosts: droplets
       remote_user: root
    
       tasks:
    
        - name: Copy package to target machines
          synchronize: src=/home/luckee/apache.rpm dest=/var/tmp/
          register: result_copy
    
    
        - name: Run installation and verification script
          script: /home/luckee/apache_install.sh
          register: result_run
          when: result_copy.changed
    
        - name: Show result
          debug: msg="{{ result_run.stdout }}"
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多