ansible-playbook

ansible-playbook

  1. ansible-playbook执行脚本,并输出到控制台
- name: Deploy nginx logrotate.sh and print the result
  hosts: all
  become: yes  # 如果需要以root权限执行命令,则需要这一行
  tasks:
    - name: Deploy logrotate.sh
      script: /home/xxx/nginxLograte/deploy_nginxlograte.sh
      register: result  # 将命令的输出结果注册到变量result中

    - name: Print stdout result
      debug:
        msg: "{{ result.stdout_lines }}"
      when: result.stdout is defined and result.stdout | length > 0  # 当有标准输出时执行

    - name: Print stderr result
      debug:
        msg: "{{ result.stderr_lines | default([]) }}"  # 使用default过滤器
      when: result.stderr is defined and result.stderr | length > 0  # 当有标准错误输出时执行
  1. ansible-playbook下载文件并保存到指定为止
- name: Download script and update modification time
  hosts: all
  become: yes  # 如果需要以root权限执行命令,则需要这一行
  tasks:
    - name: Download script using wget
      get_url:
        url: http://example.com/path/to/script.sh
        dest: /path/to/local/script.sh
  1. ansible-playbook task1执行的结果传参到task2中
- name: Deploy nginx logrotate.sh and use output as parameter for another script
  hosts: all
  become: yes  # 如果需要以root权限执行命令,则需要这一行
  tasks:
    - name: Deploy logrotate.sh
      script: /home/xxx/nginxLograte/deploy_nginxlograte.sh
      register: result  # 将命令的输出结果注册到变量result中

    - name: Print stdout result
      debug:
        msg: "{{ result.stdout_lines }}"
      when: result.stdout is defined and result.stdout | length > 0  # 当有标准输出时执行

    - name: Use output as parameter for another script
      script: /path/to/another_script.sh "{{ result.stdout | join(' ') }}"
      when: result.stdout is defined and result.stdout | length > 0  # 当有标准输出时执行
``
posted @ 2024-07-26 14:16  SpecialSpeculator  阅读(2)  评论(0编辑  收藏  举报