構成管理とはサーバの状態を必要な状態に変更し、アプリケーションのデプロイを自動化することです。
サーバの状態を設定することを管理するためのツールには、Puppet、Chef、SaltStackやAnsibleがあります。PuppetとChefはRubyで書かれていますが、SaltStackとAnsibleはPythonで書かれています。
Chef、Puppet、SaltStack、Ansibleのような構成管理ツールは、インタラクティブな応答を必要とするアドホックなタスクには向いていません。FabricやInvokeでは、Djangoのmanage.pyによるShellでデータベースを操作するような対話的な操作が可能です。
Ansible vs. Shell Scriptsでは、由緒正しいShellScriptよりも構成管理ツールを使うべき理由についての意見が述べられています。
Ansibleは、Pythonで書かれたオープンソースの構成管理、デプロイメントツールです。
An Ansible tutorialは、サーバのセットアップにAnsibleを利用するための詳細な入門記事です。
Python for Configuration Management with Ansible slides from PyCon UK 2013
Ansible Text Message Notifications with Twilio SMSは、Ansible1.6以上でTwilioモジュールを利用したサンプルを紹介した、著者のブログです。
Multi-factor SSH authentication with Ansible and Duo Security
Shippable + Ansible + Docker + Loggly for awesome deploymentsはDockerとAnsible、その他ツールを利用方法が書かれた詳細な記事です。
Idempotence, convergence, and other silly fancy words we often use
デプロイの自動化、コードによるインフラ管理との関連として構成管理を学びましょう。
構成管理ツールを選びましょう。簡単に学び、使うことができるのでAnsibleがお勧めです。
選択した構成管理ツールのドキュメントと、必要であればソースコードを読みましょう。
構成管理とデプロイを自動化してみましょう。このチェックリストの項目の中で、最も時間がかかると思いますが、デプロイをする度に恩恵を受けることができます。
既存のデプロイプロセスにデプロイの自動化を組み込みましょう。