2017-11-21 15 views
0

私はプレイプラブを使ってリモートホストにハリアードをインストールするためのプレイブックを作ろうとしています。タスクの1つは、 "InstallHalyard.sh"ラッパースクリプトを実際のインストーラー(参考:https://www.spinnaker.io/setup/install/halyard/)に実行することです。不可能 - 不可能なプレイブックを介してInstallHalyard.shスクリプトを実行すると何も起こりません

エラー/エラーはありませんが、InstallHalyard.shスクリプトが実行されていないかのように、何も変更されていません。しかし、私は手動コマンドを入力してそれを行う場合は、それはいいですが。他の同様のタスクは完全に機能します。

あなたはInstallHalyard.shスクリプトの実装を見ることができます:here

何が起こっているについて任意のアイデア?

任意の助けをいただければ幸いです
name: Run InstallHalyard.sh 
    become: yes 
    become_user: sudo 
    shell: "{{ ansible_env.HOME }}/.spinnaker/InstallHalyard.sh" 

、どうもありがとうございました:)

EDIT:すでにスクリプトを使用してみました

、コマンドをここで

は私の脚本で作業です、およびシェルモジュール。

FYI、InstallHalyard.shスクリプトはENV変数を渡すことによって、自分自身を呼び出すと、私はAnsibleが持っているように動作しないスクリプト内の「エクスポート」操作を疑ってる

カール-Oを行う必要があります環境変数のための異なる理解。 (例えば、ansibleは、 "{{ansible_env.HOME}}" それが使用する代わりに "$のHOME" を認識しません。)

EDIT:

私は、スクリプトがフォークを作る操作をしました、この種の操作を扱うのは可能でしょうか?

localhostでテストしたところ、同じ結果が得られました。それが原因ansibleの環境VARSの異なる解釈である

SOLUTION

。スクリプトを手動で実行した場合、ラッパーは環境変数を設定し、それを次のスクリプト呼び出しに渡します。これは実行できません。それでは、私はここに(わずか2行を追加する)スクリプトを実行する前にansibleモジュールを使用して手動で

を環境VARを設定しているかは、私の改訂作業されています

name: Run InstallHalyard.sh 
    become: yes 
    become_user: sudo 
    environment: 
    HAL_USER: "{{ ansible_env.USER }}" 
    shell: "{{ ansible_env.HOME }}/.spinnaker/InstallHalyard.sh" 
+0

基本パスのディレクトリを確認してください。相対パスをInstallHalyard.shスクリプトへの実行ファイルの絶対パスに置き換えることができます。また、sudoがrootユーザーであることに注意してください。その環境変数はルートに基づいています。 – Daein

+0

コマンド: "{{ansible_env.HOME}} /。spinnaker/InstallHalyard.sh"を使用してみることができますか? –

+0

@Daein {{ansible_env.HOME}}は現在のユーザー$ HOME env変数/ home /絶対パスを意味することを意味します、私は手動で絶対パスを入力してもまだ動作しませんでした。 –

答えて

0

質問は、私は、出力をデバッグんか実際にあります失敗したコマンドの私はコマンドが有用なエラーメッセージで失敗していると推測していますが、そのメッセージはどこにも表示されていません。それはあなたを与えていたものを、エラーメッセージが表示され

-name: Run InstallHalyard.sh 
    become: yes 
    become_user: sudo 
    shell: "{{ ansible_env.HOME }}/.spinnaker/InstallHalyard.sh" 
    register: output 

- debug: msg="{{ output.stdout }}" 

- debug: msg="{{ output.stderr }}" 

試してみてください。ここでは

はこの失敗スクリプトのデバッグを支援するための一例です。

+0

はい。私は実際に、不安定なプレイブックを呼び出すときに、冗長なタスク(-v)を見てエラーを出しました。答えをありがとう –

関連する問題