2016-03-21 8 views
0

thisロールを使用してelasticsearchをインストールしました。迷惑メールボックスを再起動した後で自動的にサービスを開始するにはどうすればよいですか?

私は脚本には、次の手順を実行します。

--- 

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

そしてvagrant up es-test-clusteres-test-clusterは私がVagrantFileに言及VMの名前です。私はそれに私的な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

'実行していない場合、elasticsearchサービスを開始する'の 'enables = yes'を設定すると役に立ちます。 (この文脈では、 '' vagrant up''がブートに等しいかどうかは100%確信していません)。 –

+0

@knowhy私はそれを成功させるためのいくつかの方法を試しました。私は自分の答えを更新しました。私もあなたが提案したものを試してみます。 –

答えて

1

サービスを有効にする必要があります。これは、あなたのAnipalの単一の旗で行うことができます。

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

また、あなたが使用しているansible-elasticsearch役割に応じて、それはすでにあなたが余分な作業なしでサービスを有効にするために渡すことができますフラグを有することができます。私は、私が使った役割を知っています。

+0

これはうまくいきました。どうもありがとう。私がやったものよりもはるかに良い! –

0

解決方法はDebianパッケージ用です。 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 

OR

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

を::restart_es.shが含まれてい

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

: あなたはVagrantFileに次を含めることができ

#!/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 
あなたは放浪ボックスを再起動したときに

OR

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

すべての3つはelasticsearchサービスを開始します。

関連する問題