カテゴリー
Linux

【Ansible】rbenv でインストールした gem を使って bundler をインストールするコツ

ポイント

  • rbenv でインストールした gem を Ansible モジュールから使う場合は、executable に gem の場所を指定する。

失敗

カテゴリー
コンピューター

【Ansible】PostgreSQL スーパーユーザにパスワード設定後のユーザや DB 追加操作する時のコツ

  • login_user、login_password を設定する。
  • インストール直後など、スーパーユーザにパスワードが設定されていない場合、PostgreSQL 関連モジュールでは自由に設定が可能
  • しかし、一度パスワードを設定すると、今後はそのパスワードがないと PostgreSQL への変更が行えない。
  • そこで、まだパスワードが設定されていなくても、login_user、login_password を明示的に指定することでこの問題を回避し、冪等性を保つことができる。

カテゴリー
コンピューター

【Ansible】設定ファイルで一部書き換えには、patch コマンドのモジュールが使える

patch モジュールの使い方例

カテゴリー
コンピューター

【Ansible2.3】when で変数を使用するときは jinja2 テンプレートデリミタの {{ }} を使用しないべきとの警告に対処

次のような警告が出るようになりました。

TASK [ruby-sw : Install Ruby via rbenv] ****************************************
 [WARNING]: when statements should not include jinja2 templating delimiters
such as {{ }} or {% %}. Found: "{{ ruby_version }}" not in
installed_ruby_versions.stdout

コードの修正

カテゴリー
Linux

【Ansible】【Vagrant】CentOS 7 での rbenv を使った Ruby 環境構築するプレイブック作成メモ

を作るにあたって、今回も情報源や、勉強になったことなどをノートしていきます♪

カテゴリー
Linux

【Ansible】【Vagrant】CentOS 7 での PostgreSQL 9.6、phpPgAdmin 環境構築メモ

を作るにあたって、情報源や、勉強になったことなどをノートしていきます♪

カテゴリー
Linux

【Ansible】【Vagrant】デバッグしながらプレイブックを作るときに使っているテクニック

まとめ

  • debug モジュールを使って状況を出力
  • Vagrantfile で Ansible の実行状況を詳しく出力
  • Vagrant の snapshot 機能を利用
  • Vagrant の provision 機能を利用
カテゴリー
Linux

【Ansible】yum リポジトリや GPG キーのインストール方法の整理

ポイント

Ansible を使ったリポジトリのインストール方法とそれぞれの特徴。

  • プレイブックの files フォルダ等にリポジトリファイルを用意し、copy モジュールを使って配置する。
    • メリット: インストールが楽。
    • デメリット: アップデートには追従できない。
  • yum モジュールを使用してインストールする。
    • メリット: アップデートは楽
    • メリット: state: present に設定すれば、冪等性を保つことができる。
    • デメリット: yum で扱えるリポジトリが限られる。
    • デメリット: state: latest に設定する場合、インストールに yum モジュールを使用するが、インストール済みの場合にプレイブックを実行するとエラーとなる。
  • yum_repository モジュールを使用してインストールする。
    • リポジトリファイルの内容を把握し、設定を自分自身でプレイブックに書いていく必要がある。
    • デメリット: そのため記述量が多くなる。
    • メリット: 逆に、詳細なリポジトリ設定と制御と、詳細なプレイブックの管理が可能。

GPG キーのインストール方法とそれぞれの特徴。

  • プレイブックの files フォルダ等に GPG キーファイルを用意し、copy モジュールを使って配置する。
    • メリット: インストールが楽。
    • デメリット: アップデートには追従できない。
  • rpm_key モジュールを使用して GPG キーをインストールする。
  • yum_repository モジュールの gpgkey オプションにパスまたは URL を指定する。
    • デメリット: パスを指定する場合は、GPG キーファイルを別途用意する必要があり、そのために別途プレイブックのタスク記述が必要となる。
カテゴリー
Linux

【Ansible】yum モジュールで冪等性を保ったまま remi-release-7 リポジトリをインストールする書き方

はじめに

Ansible の yum モジュールでパッケージを指定したとき、通常ですとインストールがすでにされているか否かを気にする必要はなく、冪等性の担保も意識する必要がございません。

これと同じ気持ちで remi-release-7.rpm を yum モジュールでインストールしましたところ、2 回目のインストールで失敗してしまいました><。

TASK [php-fpm : Install remi-release-7] ****************************************
fatal: [default]: FAILED! => {"changed": true, "failed": true, "msg": "エラー: 何もしません\n", "rc": 1, "results": ["読み込んだプラグイン:fastestmirror\n/var/tmp/yum-root-YOhnx0/remi-release-7.rpm を調べています: remi-release-7.3-1.el7.remi.noarch\n/var/tmp/yum-root-YOhnx0/remi-release-7.rpm: インストールされたパッケージを更新しません。\n"]}
	to retry, use: --limit @/vagrant/ansible/site.retry

したがいまして、remi-release-7.rpm がインストールされているかどうかを評価する記述を追加しなければなりません!

今回は、その記録をノートいたします。

ポイント

  • stat を使用してインストールされるファイルの状態を取得する処理を入れ、結果を register を使って変数に代入する。
  • 変数.stat.exits を評価することでファイルの存在をチェックする。
  • デバッグ出力で内容を確認するために、debug を使用する。

Ansible コード例

カテゴリー
コンピューター

【Vagrant】ansible_local プロビジョナーを使った環境構築。最初の一歩!

はじめに

  • Vagrant で Ansible を使って、プレイプックの記述内容を反映するはじめの一歩を踏み出したい。いわば Hello World!。Vagrant 環境を Ansible で構築する入門、環境の確認。
  • vagrant up で起動した時に Ansible を使ってパッケージを構成していきたい。Ansible かを学習するためにホスト用、ゲスト用の仮想マシンとか複数の仮想マシンは要らない。
  • ベストプラクティスな記述方法、ディレクトリ構成でなくてよい。