kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

PPP3: Ansible (読むだけ)

11-02 Ansibleで作業を自動化する

具体的にAnsibleで構築手順を書く方法

ここも感じがつかめればよしとするかなあ
nginxとかgunicornはともかくとしてAnsibleはちょっと体験してみたかったけど
ほんとにやりたくなったらチュートリアルやろう

  • エージェントが不要 ssh経由で操作する
  • inventory
    • サーバのIPアドレスまたはホスト名をグループに分けて定義
    • 環境ごとに作成する(開発環境・ステージング環境・本番環境)
  • playbook
    • サーバグループごとに環境を定義
    • yamlでサーバのグループや作業ユーザ、タスクなどを指定する
    • タスクは通常roleで指定する
    • 各サーバグループのplaybookをすべてインクルードしたsite.ymlを作る
  • role
  • module
    • 個々の設定・インストール手順
    • user、copy、apt、pipなど
    • templateモジュールではJinja2形式のテンプレートを使って設定ファイル等を作成できる
  • vars
    • 環境によって変わるものを定義する
    • inventoryとvarsで全体の環境を定義する
  • configure、deployなどのタグをつけることによって、関連するタスクだけを実行するように指定できる
  • Notifyを使うと、設定ファイルが変更されたときだけreloadするようにできる
  • Ansibleのファイルもバージョン管理する
    • アプリのソースといっしょに管理する場合と分離して管理する場合とがある
  • gatewayサーバにAnsible環境を作るのがよい
    • gatewayサーバの環境は手元のAnsibleから構築する
  • 難しい手順を自動化するより、手順を簡単にすることを考える
  • 類似した構成のサーバは位置から構築するのではなく共通な設定を行った状態のバックアップから構築するとよい

こんなとこで