を作るにあたって、情報源や、勉強になったことなどをノートしていきます♪
PostgreSQL 9.6 リポジトリ
PostgreSQL 9.6 リポジトリの配布元リスト。CentOS 7 用の リポジトリを探す参考になった。
PostgreSQL の initdb
PostgreSQL の initdb の冪等性担保の参考になった。
PostgreSQL の initdb の参考になった。
ファイルの存在をチェックし、その結果を後で使う方法の参考になった。
具体的には、initdb を行ったかどうかを判定するのに、後のタスクで when オプションを使って initdb 実行後に生成されるファイルの存在チェックを行うのに使用した。
--- - name: Get status whethere db cluster is exist or not stat: path: /var/lib/pgsql/9.6/data/PG_VERSION register: dbcluster - name: Create a new PostgreSQL database cluster shell: /usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/9.6/data --no-locale become: yes become_user: postgres when: not dbcluster.stat.exists ... 略 ...
設定ファイル
設定ファイルで変数を使用しない場合は、template モジュールではなく copy モジュールを使う、と決定するのに役に立った。
PostgreSQL ユーザのパスワード
パスワード無しのユーザにパスワードを設定する場合は、冪等性を保つために、ログインパスワードがあたかもあるかのように設定する。
状況としては、postgresql_user モジュールを使って、postgres ユーザにパスワードを設定したい。
インストール直後の状態では、postgres ユーザにはパスワードが設定されていないため、password オプションにパスワードを設定すれば良い。
ただし、2回目以降になると既にパスワードが設定されているため、パスワード未入力のエラーとなる。
そこで login_password オプションにパスワードを設定すればログインが可能になりエラーとならなくなる。
これで冪等性が保たれると思ったのだが、login_password オプションに予め値を設定しておくことで、逆に、パスワードが設定されていない 1 回目に問題が発生しないか心配になる。
試してみたところ、パスワードの設定されていないユーザに対して、login_password オプションを設定して postgresql_user モジュールを使用しても問題なかった。
以下は、その成果のコード。
--- ... 略 ... - name: Set password to database superuser postgresql_user: user: postgres password: "{{ postgres_su_pass }}" login_password: "{{ postgres_su_pass }}" notify: Restart postgresql-9.6
おわりに
ではシェルで環境構築をしておりました。
現在、
にて Ansible での環境構築を勉強しております。
コードを完成していく中で苦労したことや役に立ったことを、今後もメモできれば存じますの♪
以上です。