【发布时间】:2022-11-16 04:04:35
【问题描述】:
我正在尝试对 stdout_lines 的输出执行额外的任务。
这是剧本:
- name: Change to Splunk user
hosts:
sudo: yes
sudo_user: splunk
gather_facts: true
tasks:
- name: Run WGET & install SPLUNK
command: wget -O splunk-9.0.2-17e00c557dc1-Linux-x86_64.tgz https://download.splunk.com/products/splunk/releases/9.0.2/linux/splunk-9.0.2-17e00c557dc1-Linux-x86_64.tgz
- name: run 'ls' to get SPLUNK_PACKAGE_NAME
shell: 'ls -l'
register: command_output
- debug:
var: command_output.stdout_lines
我正在使用 wget 在服务器上下载 Splunk,我需要 Splunk 包名称,以便我可以在下一个任务中提取文件。
为此,我尝试将ls -l注册为command_output。
现在,我需要取消标记它 (tar xvzf splunk_package_name.tgz -C/opt),但我不知道如何在我的 tar 命令中使用 stdout_lines 输出。
【问题讨论】:
-
Ansible 的经验法则:并不是因为你知道如何在命令行中做某事,你就应该在
shell或command中做同样的事情。使用 Ansible 的专用模块。