Ansibleのs3モジュールを使ってディレクトリごとアップロードする

梅雨の季節がやって参りました。
Ansibleのs3モジュールを使ってディレクトリごとアップロードする方法を覚え書きとして。

 

認証情報を環境変数に入れておく

Ansibleで使うAWSの認証情報はPlaybookに書き込むか
環境変数を使うかで選べます。

万が一のことを考えて環境変数で管理したほうが良いと思います。

 

ファイルのアップロード

 

ディレクトリごとアップロード(Ansible 2.3以降)

key_prefixがないとバケット直下にファイルが展開されちゃうので
key_prefixを設定しておきます。

こうすると
BUCKET_NAME/source/<sourcecodeの中身> ってなる。

 

boto required for this module

Ansibleを実行するホストでAWSの操作をする場合、
botoとかいうPythonのモジュールをインストールします。
加えてdelegate_to: 127.0.0.1をタスクに追加しないとリモート先で実行されてしまって
エラーが消えないのでご注意を。

逆にリモート先で行うならリモート先で実行します。

 

それでも解決できない場合

引数にansible_python_interpreterをつけて実行する

ansible-playbook -i production/hosts api.yml --extra-vars "ansible_python_interpreter=`(which python)" --user root --ask-pass

hostsファイルにansible_python_interpreterをつける

 

コメントを残す

メールアドレスが公開されることはありません。