【问题标题】:How should I install Splunk from remote tgz package?我应该如何从远程 tgz 包安装 Splunk?
【发布时间】: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 的经验法则:并不是因为你知道如何在命令行中做某事,你就应该在shellcommand 中做同样的事情。使用 Ansible 的专用模块。

标签: ansible splunk


【解决方案1】:

在 Ansible 中,您的用例应该恢复到一个任务,使用 unarchive 模块,以及将 remote_src 参数设置为 true 并将 src 参数设置为您的 URL。

the documentation所述:

如果remote_src=yessrc包含://,远程机器会先从URL下载文件。

所以,你最终完成了这个单一的任务:

- name: Install Splunk from remote archive
  unarchive:
    src: "https://download.splunk.com/products/splunk/releases/9.0.2
          /linux/splunk-9.0.2-17e00c557dc1-Linux-x86_64.tgz"
    remote_src: true
    ## with this, you will end up with Splunk installed in /opt/splunk
    dest: /opt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2016-01-27
    相关资源
    最近更新 更多