私はプレイプラブを使ってリモートホストにハリアードをインストールするためのプレイブックを作ろうとしています。タスクの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"
基本パスのディレクトリを確認してください。相対パスをInstallHalyard.shスクリプトへの実行ファイルの絶対パスに置き換えることができます。また、sudoがrootユーザーであることに注意してください。その環境変数はルートに基づいています。 – Daein
コマンド: "{{ansible_env.HOME}} /。spinnaker/InstallHalyard.sh"を使用してみることができますか? –
@Daein {{ansible_env.HOME}}は現在のユーザー$ HOME env変数/ home /絶対パスを意味することを意味します、私は手動で絶対パスを入力してもまだ動作しませんでした。 –