2016-03-21 24 views
0

this rolünü kullanarak elasticsearch yükledim.Vagrant kutusunu yeniden başlattıktan sonra otomatik olarak hizmet nasıl başlatılır?

ben oyun kitabında aşağıdaki adımları uygulayın:

--- 

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

Sonra vagrant up es-test-cluster, es-test-cluster ben VagrantFile içinde söz VM adıdır. Özel bir IP 192.162.12.14 verdim. VM önyükleme mükemmel ve sudo service elasticsearch status çalıştırdıktan sonra hizmetin 192.162.12.14:9200 üzerinde çalıştığından eminim. Ancak vagrant halt es-test-cluster ve sonra vagrant up es-test-cluster çalıştırırsam, elasticsearch hizmetinin daha fazla çalıştığını görüyorum.

--- 

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

ama bu bile yardımcı olmuyor:

Bunu yapmanın düşündüm. Bu sadece ilk kez açtığımda çalışır.

vagrant up'u her çalıştırdığımda hizmeti nasıl başlatabilirim?

Bu Ubuntu 14.04 içindir.

+0

chkconfig ile deneme yaptınız mı? – tedder42

+1

'' Etkinleştirme elasticsearch hizmetinin çalıştırılmaması' işlevinde 'enable = yes' ayarının yapılması yardımcı olabilir. (Bu bağlamda "vagrant up", boot'e eşitse% 100 emin değilim). –

+0

@knowhy Bunu başarıyla yapmanın bazı yollarını denedim. Cevabımı güncelledim. Ben de önerdiğin şeyi deneyeceğim. –

cevap

1

Servisi "etkinleştirmeniz" gerekir. Bu, Ansible'ınızda tek bir bayrakla yapılabilir.

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

Ayrıca, kullanmakta olduğunuz yanıtlayıcı '-elasticsearch rol bağlı olarak, zaten ekstra görev olmadan hizmeti etkinleştirmek geçebilir bir bayrak olabilir. Kullandığım rolü biliyorum.

+0

Bu çalıştı. Çok teşekkürler. Yaptığımdan çok daha iyi! –

0

Çözümler Debian paketleri içindir. restart_es.sh içeren

#!/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 

VEYA

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

: restart_es.sh içeren

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

: Sen VagrantFile içinde aşağıdakileri içerebilir

#!/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 
Eğer serseri kutusunu yeniden başlattığınızda

VEYA

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

Her üç

elasticsearch hizmetini başlatın.