Ansible Night in Tokyo 2019.07 https://ansible-users.connpass.com/event/135965/
Ansible 使うとき何考えてるの
View Slide
自己紹介@zinraiやってることコンテナによるアプリケーション実行基盤の整備メトリクス管理・監視基盤の整備ログ管理・監視基盤の整備
Ansible 歴2014/07 〜
お話しすること
私が、どのように考え、 Ansible でサーバーを構成管理しているかをお話する。
サーバー構築
サーバー構築とは何だろうか。
私は、様々なソフトウェアのインストールと設定を組み合わせ、サービスが提供可能なサーバーを作り上げる行為だと考えている。
サーバー構築手順書
Apache インストールApache 設定NTP インストールNTP 設定etc.
ソフトウェアのインストールと設定が手順書の中に書かれているのではないだろうか。
Ansible でのサーバー構成管理
apache2 ( Apache インストール )apache2_conf ( Apache 設定 )ntp ( NTP インストール )ntp_conf ( NTP 設定 )etc.
様々なソフトウェアのインストールと設定を組み合わせ、サービスが提供可能なサーバーを作り上げるを Ansible の Role で表現するものであると考えている。
「インストールしてから設定する」を Ansible では Role Dependencies で表現できる。cat << EOF > apache2_conf/meta/main.yml---dependencies:- role: apache2EOFhttps://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-dependencies
Role を分割することで見えてくるもの
ソフトウェアをインストールする Role は、サーバー固有ではないので、再利用できる。
Role を再利用可能な状態にしておくことで、そのサーバー固有の設定だけに注力すればよくなる。
Role の再利用性の実例
Ansible の記事や本などで、「Role の再利用性」というものをよく目にするが、 Roleが再利用されると実際どのようなことが起きるのかを例で示す。
サーバー固有の Role は 2 つ( 水色は再利用している Ansible Role )
サーバー固有の Role は無し再利用できる状態にしていた Role のみでサーバーが構成できている。
まとめ
サーバー構築は、様々なソフトウェアのインストールと設定を組み合わせ、サービスが提供可能なサーバーを作り上げるという行為である。
Ansible で、ソフトウェアのインストール、設定をそれぞれ Role に分割し、これらを組み合わせることでサーバーを構成する。
Role の再利用性を高めておくと、最終的には Role を組み合わせるだけの状態になる。
サーバーの構成管理について非常に秀逸なコメントをしているものがあるので、最後に紹介する。実際のコメントhttps://twitter.com/inoryo/status/1115248088963145728自分の考えhttps://twitter.com/zinrai/status/1115768141529747456
自分達のサーバーインフラと向き合い構成管理が辛くない方向に持っていくことが必須である。
おわり