使用 ansible 打印文件内容

use*_*292 5 shell ansible ansible-playbook

我想使用 cat 以 ansible 打印出文本文件的结果。这是我的代码。

 tasks:
        - name: This option
          script: "./getIt.py -s {{ myhostname }} -u {{ myuser }} -p {{ mypass }} >> ./It.txt"
          shell: cat ./It.txt
          when: user_option == 'L'
Run Code Online (Sandbox Code Playgroud)

然而这行不通。我究竟做错了什么?

mwp*_*mwp 5

您正在尝试从单个任务调用两个不同的模块:脚本和外壳。您需要将它们分解……每个任务一个模块!但是,通过使用register捕获脚本的输出,并在后续任务中使用调试模块来显示它,有一种更好的方法来做到这一点:

tasks:
  - name: This option
    script: "./getIt.py -s {{ myhostname }} -u {{ myuser }} -p {{ mypass }}"
    register: script
    when: user_option == 'L'
  - name: stdout of getIt
    debug: msg={{ script.stdout }}
    when: script is defined and script|succeeded
Run Code Online (Sandbox Code Playgroud)