More Related Content
Similar to スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話 (20)
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
- 2. ⾃⼰紹介
• 名前:菅野明洋(すげの あきひろ)
• 2016年1⽉、株式会社Aimingに⼊社
• 役職:エンジニア
• サービス関連のインフラエンジニア
• ⼤阪 時々 上海・東京に出現
• 関わっているタイトル
• スマホ・ブラウザ版ログレス
• etc....
- 13. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
group_vars:グループ設定
inventories:サーバ情報
playbooks:サーバ構築設定
roles:構築処理
- 14. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
⼀番上のディレクトリにて
共通部分、各バージョンのディレクトリを設置
- 15. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
ミドルウェアのインストール処理を
まとめている
処理は極⼒汎⽤的に作り、
サーバスペックやネットワーク構成に
影響されないようにする
- 16. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
サービス地域・データセンター毎に
異なる設定を定義
- 17. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
構築処理は
共通部分を参照するようにする
- 18. ディレクトリ構成
• ├── 共通部分
• │ └── ansible
• │ └── roles
• ├── ログレス⽇本版
• │ └── ansible
• │ ├── group_vars
• │ ├── inventories
• │ ├── playbooks
• │ └── roles -> ../../共通部分/ansible/roles
• ├── ログレス簡体字版
• └── ログレス繁体字版
処理を⼀箇所にまとめ
設定はサービス地域に分けた
運⽤者が参照・編集する場所を
狭めるのが⽬的
- 20. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
- 21. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
設定の細分化は柔軟性⾼くし、
重複定義の排除を⾏うのが⽬的
- 22. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
グループとサーバ1台毎の情報の定義
- 23. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
ゲーム・Web等の役割ごとのグループ設定
- 24. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
本番・テスト環境ごとのグループ設定
- 25. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
データセンターごとのグループ設定
複数のデータセンターを使うこともあるため
- 26. 設定の構成例
• [world1-game-segment]
• Server1
• Server2
• [world1-web-segment]
• Server3
• [game:children]
• world1-game-segment
• [lwebapi:children]
• world1-web-segment
• [production:children]
• world1-game-segment
• world1-web-segment
• [datacenter1:children]
• production
• [logres:children]
• production
• ├─ group_vars
• ├ game
• ├ webapi
• ├ production
• ├ datacenter1
• ├ logres
サーバ情報設定 サーバ構築設定
全体の設定
- 27. roleの内訳例
• roles
• ├── dns
• │ ├── install
• │ ├── master
• │ └── slave
• ├── httpd
• │ ├── install
• │ ├── setting
• ├── jenkins
• │ └── install
roleは
ミドルウェアのインストールや設定レベルで
分けています
(インストールだけするということも出来る)
また、特定のプログラムに特化した設定は
まとめています