ansibleで自分が欲しい情報が色んなページに散らばっていたので、メモ
ansible-playbookのオプション
- -K: sudoのパスワード入力
- -C (--check): 実際に実行しないでチェックしてくれる
- -l name: hostsファイルに[name]と書かれたホストにのみ実行
- -i hostsfile: 初期状態では/etc/ansible/hostsを見に行くので、自分で指定したい場合に
- --syntax-check: playbookの書式チェック。書いて最初にやるといい
- --list-tasks: playbookで行う内容をリストアップ
ansibleで鍵認証のsshで処理したい
-c paramikoでなく-c sshを使うとssh_configの値を使うことが出来る
ansibleで鍵認証のsshで処理したい
-c paramikoでなく-c sshを使うとssh_configの値を使うことが出来る。
参考:ansible is not using .ssh/config · Issue #1172 · ansible/ansible
チェック時の注意点
-
何かをaptとかでインストールしてそのアプリを使って何かインストールしようとするとエラーが出る
-
aptにリポジトリ追加して、アップデートして何かインストールしようとするとエラーが出る
どちらも実際に動かすとエラーは出ない
postgresqlのデータベースロケール設定
ロケール設定してから一旦サービスを再起動する
- name: Install language-pack-ja
apt: name=language-pack-ja
- name: set locale
locale_gen: name=ja_JP.UTF-8 state=present
- name: first restart
service:
name: 'postgresql'
state: 'restarted'
- name: drop database stock if exist
sudo_user: postgres
postgresql_db: name=stock state=absent
- name: create database stock
sudo_user: postgres
postgresql_db: >
name=stock-
encoding='UTF-8'
lc_collate='ja_JP.UTF-8'
lc_ctype='ja_JP.UTF-8'
template='template0'
参考:Postgresql 9.2 "invalid locale name" on Ubuntu 12.04 - Server Fault
replaceとlineinfile
単純な置換、削除ならreplaceが直感的なので良い。 追加とかある場合はlineinfileが色々できて良い。
virtualenv関連
virtualenvのインストールだけならpipでいけるが、virtualenvの環境を初期化しておきたいのでこんな感じ
- name: install virtualenv
pip: name=virtualenv state=latest
- name: initialize virtualenv
command: virtualenv /path/to/env creates="/path/to/env"
- name: install request on vertualenv
pip:
name=requests
virtualenv=/path/to/env
requestsは最低でも入れておかないとssl関連のwarningが出る
参考:python - Why am I getting InsecurePlatformWarning on mac? - Stack Overflow、python - Ansible creating a virtualenv - Stack Overflow
GATHERING FACTSで止まる時
- まずsudoを外して-Cで動くかチェック
- いけるなら、host側のsudoパスワードが入力出来ていないのが原因なので、--ask-sudo-passを使う。