私は書いていますansible脚本を、そして私が最初にインストールしたいPEW他のいくつかのPythonライブラリをインストールするために、そのPEW環境への移行を。
だから、私のプレイブックはこのようになります...
tasks:
# task 1
- name: install pew if necessary
command: pip install pew
# task 2
- name: create new pew environment if necessary
command: pew new devpi-server
# task 3
- name: transition to pew environment
command: pew workon devpi-server
# task 4
- name: install devpi-server
command: pip install devpi-server
# task 5
- name: run devpi server
command: devpi-server ## various args
プレイブックのべき等性を維持するという精神で、必要な場合にのみ、これらすべてのタスクを実行したいと思います。
したがって、ピューがまだインストールされていない場合にのみインストールし、新しいピュー環境がまだ存在しない場合にのみ作成し、ピュー環境にまだインストールされていない場合にのみ作業します...など。 ..
これを達成する方法について誰かが良いアドバイスを持っていますか?私はansible条件にある程度精通していますが、「ファイルがダウンロードされているかどうか」のような場合に限ります。
プログラムがインストールされているか、仮想環境がロードされているかなど、まだ判断する必要はありません。
AnsibleのPipモジュールを使用して、特定のパッケージがインストールされていることを確認できます。
あなたの条件については、私が参照します:パッケージがインストールされていない場合にAnsibleにシェルスクリプトを実行させる方法とhttp://docs.ansible.com/ansible/playbooks_conditionals.html#register-variables-これらはあなたを正しくするはずです追跡。
したがって、プレイブックは次のようになります。
- pip: name=pew
- name: Check if pew env exists
command: pew command
register: pew_env_check
- name: Execute script if pew environment doesn't exist
command: somescript
when: pew_env_check.stdout.find('no packages found') != -1
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加