読者です 読者をやめる 読者になる 読者になる

ログってなんぼ

日々のメモです

Ansible : templateに変数を使って環境の違い(production/staging)に対応する

ansible infra

同一のroleをproductionとstagingで共有するときのメモ

vars: で固有の変数を定義

virtualhostのServerNameとPassengerのENVをそれぞれ設定してみた。

production.yml

---
  - hosts: app
    vars:
      app_env: production
      servername_app: example.com
    roles:
      - app

staging.yml

---
  - hosts: staging
    vars:
      app_env: staging
      servername_app: staging.example.com
    roles:
      - app

rolesは同一。

テンプレートの中で変数を参照する

環境ごとに異なる値をvarsに定義した変数として参照する

roles/app/templates/httpd.conf.j2

PassengerAppEnv {{ app_env }}

<VirtualHost *:80>
  ServerName {{ servername_app }}
  DocumentRoot "/path/to/app"
</VirtualHost>

このような感じ。で、いいのか。ツッコミ欲しい。けどインフラ担当σ(゚∀゚ )オレひとり。

初めてのAnsible

初めてのAnsible

Ansible使ってるとオレオレ流儀が増えていく気がする(´・ω・`)