Принятие лицензионного соглашения Splunk с помощью Ansible-Playbook

Я новичок в использовании Ansible-Playbooks, и у меня возникают проблемы с принятием лицензионных соглашений с Splunk.

Каждый раз, когда я запускаю оболочку:

"/opt/splunkforwarder/bin/splunk start --accept-license --answer-yes"

Я получаю непрерывную блокировку, которая заставляет меня завершить программу.

TASK [acceptlicense] ****************************************************************************************************************

^C

Зайдя в коробку и запустив команду вручную мне говорят следующее:

[root@##########-lab_env]# /opt/splunkforwarder/bin/splunk start --accept-license --answer-yes

This appears to be your first time running this version of Splunk.

Create credentials for the administrator account.
Characters do not appear on the screen when you type the password.
Password must contain at least:
   * 8 total printable ASCII character(s).
Please enter a new password:

Я просмотрел несколько онлайн-форумов, которые помогают ответить, что делать, когда я встречаю такие конкретные подсказки, но каждый раз, когда я вношу коррективы, мне говорят что-то вроде:

ERROR! '_______' is not a valid attribute for a Task

На данный момент я довольно застрял и не знаю, как продолжить.

Мой фрагмент кода выглядит следующим образом:

- hosts: "{{hostName}}"
  become: true
  become_user: root
  become_method: sudo

  tasks: 

    - name: copy_splunk
      shell: cp splunkforwarder-7.1.3-51d9cac7b837-linux-2.6-x86_64.rpm /opt/.; date; ls -l /opt
      args:
        chdir: /tmp
      register: run_ll

    - debug: var=run_ll.stdout_lines

    - name: install rpm package
      shell: rpm -ivh splunkforwarder-7.1.3-51d9cac7b837-linux-2.6-x86_64.rpm
      args:
        chdir: /tmp
      ignore_errors: True
      register: install_rpm

    - debug: var=install_rpm.stdout_lines

    - name: acceptlicense
      tags:
        - install
      shell: /opt/splunkforwarder/bin/splunk start --accept-license --answer-yes
      register: accept_l

    - debug: var=accept_l.stdout_lines

Раньше я делал только пару сборников, так что эта ошибка для меня нова.

У кого-нибудь есть понимание?

Введение в Ansible Roles
Введение в Ansible Roles
Ansible - это отличный инструмент управления конфигурацией, который можно использовать для автоматизации настройки или развертывания на большом...
1
0
2 130
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы должны посмотреть на файл ожидаемый модуль. Это позволит вам выполнять команды и отвечать на соответствующие запросы.

Вот пример о том, как использовать ожидаемый модуль. Этот метод продолжал тайм-аут для меня и не работал.
PaulR 16.04.2021 03:10
Ответ принят как подходящий

Это не очень хорошо задокументировано Splunk, но есть два способа сделать это.

1) Введите пароль в командной строке. splunk start --accept-license --answer-yes --no-prompt --seed-passwd <passwd>.

2) Создайте файл $SPLUNK_HOME/etc/system/local/user-seed.conf.

[user_info]
USERNAME = admin
PASSWORD = <password>

Затем запустите Splunk: splunk start --accept-license --answer-yes --no-prompt

Успех! Спасибо!

Jonathan Hunt 30.05.2019 16:43

Основываясь на ответе RichG, вот задачи Ansible, которые я использовал для этой работы.

- hosts: all
  tasks:
    - name: create a random password
      ansible.builtin.shell: date +%s | sha256sum | base64 | head -c 32 ; echo
      register: _splunk_password
      changed_when: false

    - name: hash the random password
      ansible.builtin.command:
        argv:
          - /opt/splunkforwarder/bin/splunk
          - "hash-passwd"
          - "{{ _splunk_password.stdout }}"
      register: _splunk_hashed_password
      changed_when: false

    - name: create the user-seed config file
      ansible.builtin.template:
        src: user-seed.conf.j2
        dest: /opt/splunkforwarder/etc/system/local/user-seed.conf
        owner: root
        group: root
        mode: 0640
      become: yes

    - name: accept the license
      ansible.builtin.shell:
        argv:
          - /opt/splunkforwarder/bin/splunk
          - start
          - "--accept-license"
          - "--answer-yes"
          - "--no-prompt"
      become: yes

А файл user-seed.conf.j2 выглядит следующим образом:

#
# {{ ansible_managed }}
#

[user_info]
USERNAME = admin
HASHED_PASSWORD = {{ _splunk_hashed_password.stdout }}

Другие вопросы по теме