2016-03-21 13 views
0

Я установил elasticsearch, используя this роль.Как запустить службу автоматически после перезапуска брандмауэра?

я сделать следующие шаги в сборник пьес:

--- 

- hosts: master 
    sudo: true 
    tags: elasticsearch 
    roles: 
    - ansible-elasticsearch 

А потом vagrant up es-test-cluster, где es-test-cluster это имя виртуальной машины я упоминаю в VagrantFile. Я дал ему частный IP 192.162.12.14. VM загрузится отлично, и после запуска sudo service elasticsearch status я получаю, что служба работает на 192.162.12.14:9200, что является правильным. Но если я запустил vagrant halt es-test-cluster, а затем vagrant up es-test-cluster Я вижу, что служба elasticsearch запущена.

Я думал сделать это:

--- 

- hosts: master 
    sudo: true 
    tags: elasticsearch 
    roles: 
    - ansible-elasticsearch 
    tasks: 
    - name: Starting elasticsearch service if not running 
    service: name=elasticsearch state=started 

, но даже это не помогает. Это выполняется только при первом загрузке.

Как начать обслуживание, когда я запустил vagrant up?

Это для Ubuntu 14.04.

+0

Вы экспериментировали с chkconfig? – tedder42

+1

Установка 'enable = yes' в' 'запуск службы elasticsearch, если не работает', может помочь. (Я не уверен на 100%, если 'vagrant up' равно загружается в этом контексте). –

+0

@knowhy Я пробовал несколько способов сделать это успешно. Я обновил свой ответ. Я попробую то, что вы предложили. –

ответ

1

Вам необходимо «включить» сервис. Это можно сделать с помощью одного флага в вашем Ansible.

--- 
- hosts: master 
    sudo: true 
    tags: elasticsearch 
    roles: 
    - ansible-elasticsearch 
    tasks: 
    - name: Starting elasticsearch service if not running 
    service: 
     name: elasticsearch 
     state: started 
     enabled: true 

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

+0

Это сработало. Большое спасибо. Гораздо лучше, чем я! –

0

Решения предназначены для пакетов Debian. Вы можете включить следующие в VagrantFile:

config.vm.provision "shell", path: "restart_es.sh" 

где restart_es.sh содержит:

#!/bin/bash 
SERVICE=elasticsearch; 
sudo update-rc.d $SERVICE defaults 95 10 
if ps ax | grep -v grep | grep $SERVICE > /dev/null 
then 
    echo "$SERVICE service running, everything is fine" 
else 
    echo "$SERVICE is not running" 
    sudo /etc/init.d/$SERVICE start 
fi 

ИЛИ

config.vm.provision "shell", path: "restart_es.sh", run: "always" 

где restart_es.sh содержит:

#!/bin/bash 
SERVICE=elasticsearch; 
if ps ax | grep -v grep | grep $SERVICE > /dev/null 
then 
    echo "$SERVICE service running, everything is fine" 
else 
    echo "$SERVICE is not running" 
    sudo service $SERVICE start 
fi 

ИЛИ

config.vm.provision "shell", inline: "sudo service elasticsearch start", run: "always" 

Всех три запуск elasticsearch службы при перезагрузке бродячего окна.

Смежные вопросы