Возможность проверить Playbook, если сервис работает, если нет - установить что-то - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно установить систему безопасности конечных точек Symantec в моей системе Linux, и я пытаюсь написать для этого сборник игр

, когда я хочу установить программу, которую я использую ./install.sh -i, но после установкикогда я запускаю установку снова, я получаю следующее сообщение:

root@TestKubuntu:/usr/SEP# ./install.sh -i
Starting to install Symantec Endpoint Protection for Linux
Downgrade is not supported. Please make sure the target version is newer than the original one.

вот как я устанавливаю его в playbook

 - name: Install_SEP
     command: bash /usr/SEP/install.sh -i

Я хотел бы, если возможно, возможно, проверить, если службаи если нет службы, установите ее или, возможно, есть лучший способ сделать это.

Большое спасибо за потраченное время

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Q: "Я хотел бы проверить, работает ли служба, и если ее нет, установите ее."

Возможно использовать service_facts . Например, для проверки службы работает

vars:
  my_service: "<name-of-my-service>"
tasks:
  - name: Collect service facts
    service_facts:
  - name: Install service when not running
    command: "<install-service>"
    when: "my_service not in ansible_facts.services|
                             dict2items|
                             json_query('[?value.state == `running`].key')"

Для проверки установленной службы используйте

                             json_query('[].key') }}" 

(не проверено)

0 голосов
/ 10 октября 2019

Пожалуйста, попробуйте что-то вроде ниже.

- name: Check if service is up
  command: <command to check if service is up>
  register: output

- name: Install_SEP
  command: bash /usr/SEP/install.sh -i  
  when: "'running' not in output.stdout"

Примечание: я использовал запуск в условии когда: если сервисная команда возвращает что-то конкретное, включите это вместо запуска.

...