More Related Content Similar to 自動化ツール Ansible に触れてみよう(技術インターン) (20) 自動化ツール Ansible に触れてみよう(技術インターン)4. 自己紹介
名前 横地 晃
所属 システム基盤サービス事業本部 技術開発部 自動化グループ
職種 テクニカルエバンジェリスト
業務 登壇やブログ、ネットワーク自動化サービスの開発
@akira6592
twitter 技術ブログ Ansible実践ガイド 第3版
https://book.impress.co.jp/books/1118101094
Software Design
https://tekunabe.hatenablog.jp/
https://gihyo.jp/magazine/SD/archive/2018/201812
https://gihyo.jp/magazine/SD/archive/2019/201912
4
18. モジュールとは
● Ansible の機能単位
● モジュールが増えると、できることが増える
● Playbook から、利用するモジュールとオプションを指定
18
システム クラウド等 DB 監視 通知 NW機器
Linux
Windows
AWS
Azure
GCP
Docker
PostgreSQL
MySQL
MS SQL
Server
Zabbix
Sensu
nagios
Mail
Slack
syslog
Cisco IOS
Juniper Junos
Arista EOS
対応プラットフォーム例
などなど、バージョンアップで増えていく
19. モジュールとは
● 全モジュール 3,000 以上
19
分類 モジュール名 用途
サーバー系 yum yumによるパッケージのインストール、
アンインストール
user ユーザーの作成、削除
win_firewall_rule Windows Firewallの設定
クラウド系 ec2 AWSのec2インスタンスの作成、終了、起動、停止
azure_rm_virtualmachine Azure VM の管理
ネットワーク系 ios_config Cisco IOS 機器へのコンフィグ投入
junos_config Juniper Junos 機器へのコンフィグ投入
などなど、バージョンアップで増えていく
モジュール例
20. Playbook とは
● YAMLというフォーマットで記述する構成定義ファイル
20
サンプル - hosts: web
become: yes
tasks:
- name: install
yum:
name: httpd
state: latest
- name: deploy
copy:
src: index.html
dest: /var/www/html/index.html
・ グループ web に
・httpd インストール
・index.html コピー
なにをするか
どこに対して
21. Playbook とは(YAMLの補足)
● 少ない記述で表現するフォーマット
21
- hosts: web
become: yes
tasks:
- name: install
yum:
name: httpd
state: latest
- name: deploy
copy:
src: index.html
dest: /var/www/html/index.html
スペースの数で構造を表現
(タブは利用不可)
サンプル
キー: 値
でディクショナリを表現
(: の後はスペース)
- で配列を表現
(- の後はスペース)
22. Playbook とは(YAML と JSON )
22
- hosts: web
become: yes
tasks:
- name: install
yum:
name: httpd
state: latest
- name: deploy
copy:
src: index.html
dest: /var/www/html/index.html
[
{
"hosts": "web",
"become": "yes",
"tasks": [
{
"name": "install",
"yum": {
"name": "httpd",
"state": "latest"
}
},
{
"name": "deploy",
"copy": {
"src": "index.html",
"dest": "/var/www/html/index.html"
}
}
]
}
]
YAML JSON
スペースの数を厳密にする必要があ
る代わりに、括弧などの記号を省略
できる
24. ハンズオン環境について
● みなさんのPCの「Tera Term」から controller にSSHで接続して作業し
ます。
● controller への接続情報は別紙「受講者用環境パラメータ一覧表」を参
照してください。
24
controller node1
ハンズオン環境
ハンズオン環境は1人1セット用意してあります
お手元のノートPC
SSH接続
25. 必要なものの準備
● 「ハンズオン・手動編」の作業内容を Ansible で自動化するための準備
をします。
○ 詳細はGitHub上の「handson1/README.md」を参照してください。
■ https://github.com/akira6592/intern2021/tree/master/handson1
25
controller node1
ハンズオン環境
1. インベントリ
■ 操作対象ホスト情報
2. Playbook
■ 構成定義ファイル
必要なもの
27. Playbook の実行
● 先ほど準備した Playbook をもとに作業します。
● 詳細は以下の別紙手順書を参照してください。
○ Webサーバー構築手順書(自動化編)
■ GitHub上の「handson1/Webサーバー構築手順書(自動化編).pdf」
● https://github.com/akira6592/intern2021/blob/master/handson1/Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF
%89%E6%89%8B%E9%A0%86%E6%9B%B8%EF%BC%88%E8%87%AA%E5%8B%95%E5%8C%96%E7%B7%A8%EF%BC%89.pdf
27
33. 参考資料
● 公式ドキュメント
○ Ansible Documentation
■ https://docs.ansible.com/
● 書籍
○ Ansible構築・運用ガイドブック
■ https://book.mynavi.jp/ec/products/detail/id=112246
○ Ansible 実践ガイド 第3版
■ https://book.impress.co.jp/books/1118101094
● コミュニティ
○ Ansible ユーザー会(定期的にもくもく会や発表イベントを開催)
■ https://ansible-users.connpass.com/
●ハンズオンコンテンツ(ブラウザだけて気軽に試せる)
○ @irixjp さん作成の Katacoda コース
■ https://www.katacoda.com/irixjp
33