SlideShare a Scribd company logo
Ansible Hands-on
Okinawa Open Days 2016
2016.12.05
Hideki Saito (@saito_hideki)
Okinawa Open Days 2016
1
whoami
氏名: 齊藤 秀喜 (さいとう ひでき)
TwitterID: @saito_hideki
• 所属:
• 株式会社インターネットイニシアティブ
• 日本OpenStackユーザ会ボードメンバー
• Okinawa Open Days 2016実行委員
• 趣味: OpenStack, Ansible, IT Automation
Okinawa Open Days 2016
2
本セッションの目的
本セッションでは、ITオートメーションツールである"Ansible"
の仕組みと基本操作、パブリッククラウド環境での利用方法に
ついて、実際に手を動かしながら体験してみましょう。
(1) Ansibleのインストール
(2) Ansibleの仕組み
(3) パブリッククラウド環境で利用する
Okinawa Open Days 2016
3
Ansibleのインストール
〜前提条件〜
Cloud Shellでのコンソール操作が可能であること
Okinawa Open Days 2016
4
Ansibleは、手作業のコード化と自動実行を実現する
ためのITオートメーションツールです。
構築手順構築手順
Server
Ansibleとは(1)
Okinawa Open Days 2016
Apache
MySQL
PHP
Linux
Linux
Apache
MySQL
PHP
Server
Linux
Apache
MySQL
PHP
構築手順書
作業実施
Playbook
コード実行
オペレータ
5
Ansibleとは(2)
Ansibleは、ITオートメーションを実現する優秀な
ツールですが、他の選択肢も存在しています。
他の代表的なプロダクトとして、ChefやPuppetがあ
げれられます。
Okinawa Open Days 2016
6
Ansibleの特徴
ChefとPuppetはAnsibleに比べて歴史も長く、多くの利用実
績があります。また、自動化を実現するためのコンセプトも
似通っています。
これらのプロダクトに対して、Ansibleは以下のような特徴
を持っています。
◎ 運用しやすいコマンドラインベースのシンプルなアーキテクチャ
◎ エージェントレスなうえに、CMDBもなしで身軽
○ 標準提供される数多くのモジュール群をもっている
☓ 外部から制御可能なAPIをもっていない(CLIベースなので)
☓ ユーザの細かな権限管理をしにくい
☓ Ansibleの設定やログなどを中央で管理する方法は提供されない
Okinawa Open Days 2016
7
Server
Infrastructure as Codeを実現
Okinawa Open Days 2016
Linux
Apache
MySQL
PHP
Playbook
例: テスト環境の⾃動構築
fetch/push
review
check/fetch/review
fetch/push
deploy
operation
operation
exec
8
ITオートメーションツールと、他の役割のツール群を
連携させることで、更に大きな導入効果を得られます。
ハンズオンの準備
Okinawa Open Days 2016
Github上のリポジトリをチェックアウト
ハンズオン用のリポジトリをチェックアウトして利用します。
このリポジトリには、ダイナミックインベントリやPlaybookなどの以
降で利用するファイル群が保存されています。
$ cd ~
$ git clone https://github.com/saito-hideki/ood-handson-ansible
$ cd ood-handson-ansible
├── ansible.cfg
├── gce.ini
├── gce.py
├── hosts
├── playbooks
│ └── gce
│ └── create_instance.yml
├── README.md
└── secrets.py.sample
Ansibleの設定ファイル
<ood-handson-ansibleリポジトリ>
ダイナミックインベントリ設定ファイル
ダイナミックインベントリインベントリファイル
GCE用のダイナミックインベントリが
利用する認証設定ファイル
Playbook
9
Ansibleのインストール(1)
Cloud Shell上にvirtualenv環境を構築します。
• 仮想環境名: ood2016
virtualenv環境への切り替え以降に、pipでインストールし
たPythonモジュールやパッケージは、virtualenv環境であ
る$HOME/ood2016/以下に配置されます。
Okinawa Open Days 2016
$ virtualenv ~/ood2016
$ source ~/ood2016/bin/activate
(ood2016)$
virtualenvの環境名がプロンプトに表示されます
virtualenv環境への切り替え
virtualenv環境(ood2016)の作成
10
Ansibleのインストール(2)
AnsibleからGoogle Cloud Platformを操作するのに必要と
なる Apache Libcloud を、pipでインストールします。
Okinawa Open Days 2016
(ood2016)$ pip install apache-libcloud
Collecting apache-libcloud
Downloading apache_libcloud-1.4.0-py2.py3-none-any.whl (2.3MB)
100% |████████████████████████████████| 2.4MB 559kB/s
Installing collected packages: apache-libcloud
Successfully installed apache-libcloud-1.4.0
Ansible
GCPモジュール
Apache Libcloud
ServerServerServer
11
Ansibleのインストール(3)
pipを利用してAnsibleをインストールして、設定ファイルを
確認します。
Okinawa Open Days 2016
(ood2016)$ pip install ansible
Installing setuptools, pip, wheel...done.
[defaults]
callback_whitelist = profile_tasks
forks = 10
gathering = smart
host_key_checking = False
private_key_file=/home/<UserID>/.ssh/google_compute_engine
transport = smart
設定ファイルパス: ~/ood-handson-ansible/ansible.cfg
設定可能なパラメータ > http://docs.ansible.com/ansible/intro_configuration.html
12
Ansibleのインストール(4)
Ansible(ver2.2.0.0)が正常に動作することを確認します。
Okinawa Open Days 2016
(ood2016)$ cd ~/ood-handson-ansible
(ood2016)$ ansible --version
ansible 2.2.0.0
config file = /home/<UserID>/ood-handson-ansible/ansible.cfg
configured module search path = Default w/o overrides
(ood2016)$ ansible localhost -i hosts -m ping
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
pingモジュールを利用して動作確認を行います。
SUCCESSとなっていれば、Ansibleは正常に動作しています
チェックアウトしたリポジトリ上にある
インベントリファイル(hosts)を利用します
13
ansibleコマンドの書式
Okinawa Open Days 2016
ansibleコマンドは、パッケージをインストールしたり、対象
ホストを再起動するなど、連続しない単発のタスクを実行す
るときに利用します。
[書式] ansible <host-pattern> [options]
[例1] モジュールを実行する
ansible <パターン> -i インベントリ -m モジュール
ansible localhost -i hosts -m ping
[例1] モジュールに変数を渡して実行する
ansible <パターン> -i インベントリ -m モジュール -e "key=value"
ansible localhost -i hosts -m debug -e "msg='Hello,World!'"
[例2] アドホックにOSのコマンドを実行する
ansible <パターン> -i インベントリ -a "コマンド"
ansible testserver -i ./gce.py -a "uname -a"
14
ansible-playbookコマンドの書式
Okinawa Open Days 2016
ansible-playbookコマンドは、ワークフローをYAML形式で
記述したPlaybookを使用して、連続するタスクを実行すると
きに利用します。
[書式] ansible-playbook -i インベントリ playbook.yml
[例1] Playbookを実行する
ansible-playbook -i インベントリ
ansible-playbook -i hosts playbook.yml
[例2] Playbookを実行時に-eオプションで変数を与える
ansible-playbook -i インベントリ -e "変数=値" Playbook
ansible-playbook -i ./gce.py -e "hostname=testserver" playbook.yml
[例3] Playbookを実行時に-tオプションでタグを指定する
ansible-playbook -i インベントリ -t Playbook
ansible-playbook -i ./gce.py -t start playbook.yml
15
Ansibleの仕組み
Okinawa Open Days 2016
16
Ansibleの構成要素
Ansibleはコマンドラインベースのツールで、以下の要素か
ら構成されています。
Okinawa Open Days 2016
# 構成要素 概要
1 Configuration Ansibleの振る舞いを決める設定ファイル
2 Inventory 管理対象ホストの一覧が記述されたファイル
3 Module タスクとしてAnsibleが実行するプログラム
4 Command タスクやPlaybookを実行するためのコマンド群
5 Playbook 複数のタスクから構成されるワークフロー定義ファイル
17
Ansibleによる自動化の仕組み
Okinawa Open Days 2016
(a) UNIXホストに対する操作
(b)Windowsホストに対する操作
(c)ネットワーク機器に対する操作
18
ansibleによるタスク実行
Okinawa Open Days 2016
19
ansible-playbookによるシナリオ実行
Okinawa Open Days 2016
AnsibleはPlaybookにより、オペレーションのコー
ド化を実現しています。
Playbookは、実施する一連のタスクを、順序立て
てYAML形式で記述したものです。
20
パブリッククラウド環境で利用する
Okinawa Open Days 2016
21
インベントリファイルの課題
Ansibleでは、インベントリファイルと呼ばれるテキストファ
イルで操作対象ホストの情報を管理しています。
Okinawa Open Days 2016
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
www[00:50]
<インベントリファイル>
IPアドレスまたは名前解決可能なホスト名
複数のホストエントリのグループ化が可能
アルファベットと数字であればレンジ指定が可能
22
ダイナミックインベントリ
操作対象の増減が激しい環境では、手動でインベントリファ
イルのエントリをメンテナンスするのは現実的に難しくなり
ます。
しかし、幸いなことにGCPのようなクラウドサービスは、ユー
ザ管理下のリソースに関する情報を取得可能なAPIを提供し
ています。Ansibleは、このAPIをダイナミックインベント
リから利用することで、環境の変化に対応します。
Okinawa Open Days 2016
API
JSON形式の
インベントリ情報
ServerServerServer
23
ダイナミックインベントリを利用する
GCPを対象として、ダイナミックインベントリを利用するに
は、いくつかの準備が必要です。
Okinawa Open Days 2016
(1) ダッシュボードから"ツールとサービス"をクリックします
(2) "API Manager"をクリックします
(3) "認証情報"をクリックします
サービスアカウントの準備
Google Cloud Platformのダッシュボードから、API Managerを利用
して認証情報を作成し、ダウンロードします。
24
ダイナミックインベントリを利用する
Okinawa Open Days 2016
サービスアカウントの準備
(4) "サービスアカウントキー"を作成します
ファイル名: credential.json
として保存してください
25
ダイナミックインベントリを利用する
Okinawa Open Days 2016
サービスアカウントの準備
作成した認証ファイルを、Cloud Shellにアップロードします。
(5) Cloud Shellのメニューバーからファイルアップロードを選択して、認証
ファイルアップロードします。
26
ダイナミックインベントリを利用する
Okinawa Open Days 2016
APIを有効化する
Google Compute EngineをAPI経由で操作する機能を有効化します。
"API Manager"の"ライブラリ"から"Compute Engine API"を"有効"にします。
27
ダイナミックインベントリを利用する
Okinawa Open Days 2016
GCP認証ファイルの作成
Google Cloud PlatformのAPIを利用するために必要となる認証情報を
設定するファイル(secrets.py)を作成します。
secrets.pyの内容は以下の2行です。
GCE_PARAMS = ('<client_email>', '<credentialファイルパス>')
GCE_KEYWORD_PARAMS = {'project': '<project_id>'}
credential.jsonの"project_id"パラメータの値
credential.jsonの"client_email"パラメータの値 credential.jsonファイルのパス
28
ダイナミックインベントリを利用する
Okinawa Open Days 2016
ダイナミックインベントリの動作確認
GCP用のダイナミックインベントリは、Pythonスクリプトで提供され
ています。
(ood2016)$ ./gce.py --help
usage: gce.py [-h] [--list] [--host HOST] [--pretty]
Produce an Ansible Inventory file based on GCE
optional arguments:
-h, --help show this help message and exit
--list List instances (default: True)
--host HOST Get all information about an instance
--pretty Pretty format (default: False)
(ood2016)$ ./gce.py --pretty --list
(ood2016)$ ./gce.py --pretty --host <ホスト名>
virtualenvの環境名がプロンプトに表示されいない場合は、以下のコマンドを実行してください
$ source ~/ood2016/bin/activate
29
仮想マシンを起動する
Okinawa Open Days 2016
GCEと連携して仮想マシンを起動する
create_instance.ymlを適用し、仮想マシンを起動させてみましょう。
---
- hosts: localhost
vars:
gcp:
driver: google
hostname: "{{ hostname }}"
machine_image: https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20161115
machine_type: n1-standard-1
project: ood2016-handson
zone: asia-northeast1-a
tasks:
- command: >
docker-machine create --driver "{{ gcp.driver }}" --google-project "{{ gcp.project }}"
--google-zone "{{ gcp.zone }}" --google-machine-type "{{ gcp.machine_type }}"
--google-machine-image "{{ gcp.machine_image }}" "{{ gcp.hostname }}"
- command: gcloud compute ssh "{{ gcp.hostname }}" --zone "{{ gcp.zone }}" -- uname
- name: show getting start
debug:
msg: "Usage: ssh -i <private-key file> -l {{ ansible_user_id }} {{ gcp.hostname }}.{{ gcp.zone }}.{{ gcp.project }}"
tags:
- usage
Ansibleが実行するタスクが列挙されています
GCEの情報や、起動する仮想マシンのスペックが定義されています
タスクを実行するホストを指定しています
みなさんの環境にあわせて修正してください
30
仮想マシンを起動する
Okinawa Open Days 2016
(ood2016)$ cd ~/ood-handson-ansible/
(ood2016)$ ansible-playbook -i hosts -e "hostname=testserver" playbooks/gce/create_instance.yml
PLAY [localhost] ***************************************************************
TASK [setup] *******************************************************************
Friday 02 December 2016 16:33:15 +0900 (0:00:00.027) 0:00:00.027 *******
ok: [localhost]
TASK [command] *****************************************************************
Friday 02 December 2016 16:33:16 +0900 (0:00:00.927) 0:00:00.955 *******
changed: [localhost]
TASK [command] *****************************************************************
Friday 02 December 2016 16:39:07 +0900 (0:05:50.367) 0:05:51.323 *******
Enter passphrase (empty for no passphrase): 何も入力せずにEnter
Enter same passphrase again: 何も入力せずにEnter
changed: [localhost]
TASK [show getting start] ******************************************************
Friday 02 December 2016 16:39:28 +0900 (0:00:21.277) 0:06:12.600 *******
ok: [localhost] => {
"msg": "Usage: ssh -i <private-key file> -l %userid% testserver.asia-northeast1-a.ood2016-handson"
}
PLAY RECAP *********************************************************************
localhost : ok=4 changed=2 unreachable=0 failed=0
... 以下略 ...
<ansible-playbookコマンド実⾏結果>
taskセクション
を順次実⾏
-eオプションで変数を定義
31
Playbook
仮想マシンを起動する
Okinawa Open Days 2016
GCEと連携した仮想マシンの起動プロセス
ここでは、ローカルホストのCloud Shell上で、commandモジュール
からdocker-machineコマンドを実行しています。
インベントリファイル
モジュール
Cloud Shell
(4) API
(1) read
(5) create & boot
(2) read
実行可能コード
(3)generate
exec
instance
32
仮想マシンを起動する
Okinawa Open Days 2016
起動した仮想マシンにログインする
GCE上に起動した"testserver"に実際にログインしてみましょう。
(ood2016)$ ./gce.py --host testserver | jq .gce_public_ip
"NNN.NNN.NNN.NNN"
(ood2016)$ ssh -i ~/.ssh/google_compute_engine NNN.NNN.NNN.NNN
<userd>@testserver:~$ hostname
testserver
<userd>@testserver:~$ exit
logout
Connection to NNN.NNN.NNN.NNN closed.
(ood2016)$
SSHログイン成功!
ダイナミックインベントリを利用してIPアドレスを調べる
33
Dockerコンテナを起動する
Okinawa Open Days 2016
testserverがAnsibleから操作できることを確認
GCE上に起動したtestserverが、Ansibleから操作できることを確認
します。ここでは、ダイナミックインベントリを利用しています。
(ood2016)$ ansible testserver -i ./gce.py -m ping
testserver | SUCCESS => {
"changed": false,
"ping": "pong"
}
1
2
3
3
GCE上のホストリストを取得
testserverの詳細情報を取得
testserver上でpingモジュールを実行
1
2
1 2 3
34
Dockerコンテナを起動する
Okinawa Open Days 2016
Dockerハンズオンで登録したイメージを再利⽤
Dockerハンズオンで作成・登録した、Dockerコンテナ(v1.0/v1.1)の
イメージを再利用します。
モジュール
ダイナミックインベントリ
Cloud Shell
(2) API
(3) read
(1) read
実行可能コード
(4)generate
instance
(5) sftp(6) ssh / exec
実行可能コード
CMDB
35
Dockerコンテナを起動する
Okinawa Open Days 2016
(ood2016)$ ansible-playbook -i ./gce.py 
-e "hostname=testserver" -e "tag=v1.0" playbooks/gce/launch_container.yml
PLAY [testserver] **************************************************************
TASK [setup] *******************************************************************
Saturday 03 December 2016 14:01:29 +0900 (0:00:00.033) 0:00:00.033 *****
ok: [testserver]
TASK [install requirement packages by apt] *************************************
Saturday 03 December 2016 14:01:31 +0900 (0:00:01.989) 0:00:02.023 *****
changed: [testserver] => (item=[u'python-pip'])
TASK [install requirement packages by pip] *************************************
Saturday 03 December 2016 14:02:17 +0900 (0:00:46.477) 0:00:48.500 *****
changed: [testserver] => (item=docker-py)
TASK [pull container image from gcr.io by gcloud command] **********************
Saturday 03 December 2016 14:02:22 +0900 (0:00:05.024) 0:00:53.525 *****
changed: [testserver] => (item=v1.0)
changed: [testserver] => (item=v1.1)
TASK [launch container] ********************************************************
Saturday 03 December 2016 14:02:46 +0900 (0:00:23.682) 0:01:17.208 *****
changed: [testserver]
PLAY RECAP *********************************************************************
testserver : ok=5 changed=4 unreachable=0 failed=0
...以下略...
36
変数指定 Playbook変数指定
Dockerコンテナを起動する
Okinawa Open Days 2016
GCPダッシュボードからHTTPアクセスを許可
起動したコンテナに対して、インターネット経由でのHTTPアクセス
を許可します。
37
Dockerコンテナを起動する
Okinawa Open Days 2016
Webブラウザからアクセスする
WebブラウザからコンテナにHTTPアクセスしてみましょう。
38
Dockerコンテナを切り替える
Okinawa Open Days 2016
(ood2016)$ ansible-playbook -i ./gce.py 
-e "hostname=testserver" -e "tag=v1.1" playbooks/gce/switch_container.yml
PLAY [testserver] **************************************************************
TASK [setup] *******************************************************************
Saturday 03 December 2016 16:53:49 +0900 (0:00:00.046) 0:00:00.046 *****
ok: [testserver]
TASK [stop container] **********************************************************
Saturday 03 December 2016 16:53:51 +0900 (0:00:01.637) 0:00:01.683 *****
changed: [testserver]
TASK [launch container] ********************************************************
Saturday 03 December 2016 16:53:52 +0900 (0:00:01.111) 0:00:02.795 *****
changed: [testserver]
PLAY RECAP *********************************************************************
testserver : ok=3 changed=2 unreachable=0 failed=0
...以下略...
起動中のコンテナをv1.0からv1.1に切り替えます
起動中のv1.0を停止し、v1.1を起動することにより、アプリケーショ
ンを切り替えてみましょう。
39
変数指定 Playbook変数指定
Dockerコンテナを切り替える
Okinawa Open Days 2016
Webブラウザからアクセスする
WebブラウザからコンテナにHTTPアクセスしてみましょう。
40
仮想マシンを削除する
Okinawa Open Days 2016
(ood2016)$ ansible-playbook -i hosts -e "hostname=testserver" playbooks/gce/delete_instance.yml
PLAY [localhost] ***************************************************************
TASK [setup] *******************************************************************
Saturday 03 December 2016 17:05:40 +0900 (0:00:00.023) 0:00:00.023 *****
ok: [localhost]
TASK [delete instance from GCE] ************************************************
Saturday 03 December 2016 17:05:41 +0900 (0:00:00.484) 0:00:00.508 *****
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
...以下略...
起動中の仮想マシンを削除します
最後に、GCE上で起動しているtestserverを削除するPlaybookを実行
してみましょう。
41
Playbook変数指定
仮想マシンを削除する
Okinawa Open Days 2016
GCEと連携した仮想マシンの削除プロセス
起動時と同じプロセスで、今度はローカルホストのCloud Shell上で、
commandモジュールからdocker-machineコマンドを利用してインス
タンスを削除します。
インベントリファイル
モジュール
Cloud Shell
(4) API
(1) read
(5) delete
(2) read
実行可能コード
(3)generate
exec
instance
42
まとめ
Okinawa Open Days 2016
43
IT Automation by Ansible
Okinawa Open Days 2016
このハンズオンセッションでは、Ansibeを利用したオペレー
ションの自動化について体験していただきました。
Ansibleに代表されるITオートメーションツールは、これまで
人間が行ってきた作業を自動化するための機能を提供してく
れます
Google Cloud PlatformやOpenStackのようなクラウド基盤
との連携機能を持っており、親和性が高いのが特徴です。
44
Infrastructure as Code
ITオートメーションツールを導入して、 手作業のコード化
を推進することで、ソフトウェア開発の分野で利用されてい
るQAやテストなどの優れた手法を、ITインフラの運用管理
にも応用することができるようになります。
1.手順書のコード化
2.コードのリビジョンの管理
3.チケットシステムによる課題管理
4.コードレビュー
5.テスト
6.デプロイシステム
7.インフラの構成管理
Internet Week 2016
出展: Wikipedia
1〜7をシステマチックに連携させることで
Infrastructure as Codeを実現する
45
Ansible関連情報
• 公式サイト
• https://www.ansible.com/
• Tower公式サイト
• https://www.ansible.com/tower
• 公式ドキュメント
• http://docs.ansible.com/ansible/index.html
• ソースコードリポジトリ
• https://github.com/ansible/ansible
• https://github.com/ansible/ansible-modules-core
• https://github.com/ansible/ansible-modules-extras
Internet Week 2016
46
おつかれさまでした:-)
Okinawa Open Days 2016

More Related Content

What's hot

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
Masataka Tsukamoto
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
Hideki Saito
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
Vagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたいVagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたい
Kazuhiro Oinuma
 
Ansible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic InventoryAnsible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic Inventory
Hideki Saito
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
Hiroshi Okano
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Kamimura Taichi
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Takeshi Kuramochi
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacTakeshi Komiya
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
Shunsaku Kudo
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
Hideki Saito
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
Daiki Hayakawa
 

What's hot (20)

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
Vagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたいVagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたい
 
Ansible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic InventoryAnsible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic Inventory
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 

Similar to Ansible handson ood2016

サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合Ryo Kuroda
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
Takashi Kanai
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
Akihiro Motoki
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ai Makabi
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
 
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...佑介 九岡
 
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistranokumachang_LL
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
Yasushi Osonoi
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
yukihiro kawada
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
 
サーバを作ってみた (1)
サーバを作ってみた (1)サーバを作ってみた (1)
サーバを作ってみた (1)
SeungYong Yoon
 
OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016
VirtualTech Japan Inc.
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Ryo Adachi
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
 
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOpsデブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
Developers Summit
 

Similar to Ansible handson ood2016 (20)

サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
 
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
サーバを作ってみた (1)
サーバを作ってみた (1)サーバを作ってみた (1)
サーバを作ってみた (1)
 
OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
Open modeler
Open modelerOpen modeler
Open modeler
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOpsデブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
 

More from Hideki Saito

これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
Hideki Saito
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
Hideki Saito
 
Ansible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめAnsible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめ
Hideki Saito
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NG
Hideki Saito
 
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
Hideki Saito
 
How to contribute code to ansible awx
How to contribute code to ansible awxHow to contribute code to ansible awx
How to contribute code to ansible awx
Hideki Saito
 
Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0
Hideki Saito
 
OpenStackSDK with Ansible
OpenStackSDK with AnsibleOpenStackSDK with Ansible
OpenStackSDK with Ansible
Hideki Saito
 
How to contribute AWX
How to contribute AWXHow to contribute AWX
How to contribute AWX
Hideki Saito
 
Ansible Tower on OpenShift
Ansible Tower on OpenShiftAnsible Tower on OpenShift
Ansible Tower on OpenShift
Hideki Saito
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
Hideki Saito
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
Hideki Saito
 
Ansible with AWX
Ansible with AWXAnsible with AWX
Ansible with AWX
Hideki Saito
 
Ansible101
Ansible101Ansible101
Ansible101
Hideki Saito
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
Hideki Saito
 
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係Ansible2とOpenStackの関係
Ansible2とOpenStackの関係
Hideki Saito
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOV
Hideki Saito
 
OpenStack Summitの歩き方
OpenStack Summitの歩き方OpenStack Summitの歩き方
OpenStack Summitの歩き方
Hideki Saito
 
OpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver ReportOpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver Report
Hideki Saito
 
OpenStack and Ansible Handson
OpenStack and Ansible HandsonOpenStack and Ansible Handson
OpenStack and Ansible Handson
Hideki Saito
 

More from Hideki Saito (20)

これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
 
Ansible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめAnsible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめ
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NG
 
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
 
How to contribute code to ansible awx
How to contribute code to ansible awxHow to contribute code to ansible awx
How to contribute code to ansible awx
 
Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0
 
OpenStackSDK with Ansible
OpenStackSDK with AnsibleOpenStackSDK with Ansible
OpenStackSDK with Ansible
 
How to contribute AWX
How to contribute AWXHow to contribute AWX
How to contribute AWX
 
Ansible Tower on OpenShift
Ansible Tower on OpenShiftAnsible Tower on OpenShift
Ansible Tower on OpenShift
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 
Ansible with AWX
Ansible with AWXAnsible with AWX
Ansible with AWX
 
Ansible101
Ansible101Ansible101
Ansible101
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
 
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係Ansible2とOpenStackの関係
Ansible2とOpenStackの関係
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOV
 
OpenStack Summitの歩き方
OpenStack Summitの歩き方OpenStack Summitの歩き方
OpenStack Summitの歩き方
 
OpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver ReportOpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver Report
 
OpenStack and Ansible Handson
OpenStack and Ansible HandsonOpenStack and Ansible Handson
OpenStack and Ansible Handson
 

Recently uploaded

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (12)

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

Ansible handson ood2016

  • 1. Ansible Hands-on Okinawa Open Days 2016 2016.12.05 Hideki Saito (@saito_hideki) Okinawa Open Days 2016 1
  • 2. whoami 氏名: 齊藤 秀喜 (さいとう ひでき) TwitterID: @saito_hideki • 所属: • 株式会社インターネットイニシアティブ • 日本OpenStackユーザ会ボードメンバー • Okinawa Open Days 2016実行委員 • 趣味: OpenStack, Ansible, IT Automation Okinawa Open Days 2016 2
  • 5. Ansibleは、手作業のコード化と自動実行を実現する ためのITオートメーションツールです。 構築手順構築手順 Server Ansibleとは(1) Okinawa Open Days 2016 Apache MySQL PHP Linux Linux Apache MySQL PHP Server Linux Apache MySQL PHP 構築手順書 作業実施 Playbook コード実行 オペレータ 5
  • 7. Ansibleの特徴 ChefとPuppetはAnsibleに比べて歴史も長く、多くの利用実 績があります。また、自動化を実現するためのコンセプトも 似通っています。 これらのプロダクトに対して、Ansibleは以下のような特徴 を持っています。 ◎ 運用しやすいコマンドラインベースのシンプルなアーキテクチャ ◎ エージェントレスなうえに、CMDBもなしで身軽 ○ 標準提供される数多くのモジュール群をもっている ☓ 外部から制御可能なAPIをもっていない(CLIベースなので) ☓ ユーザの細かな権限管理をしにくい ☓ Ansibleの設定やログなどを中央で管理する方法は提供されない Okinawa Open Days 2016 7
  • 8. Server Infrastructure as Codeを実現 Okinawa Open Days 2016 Linux Apache MySQL PHP Playbook 例: テスト環境の⾃動構築 fetch/push review check/fetch/review fetch/push deploy operation operation exec 8 ITオートメーションツールと、他の役割のツール群を 連携させることで、更に大きな導入効果を得られます。
  • 9. ハンズオンの準備 Okinawa Open Days 2016 Github上のリポジトリをチェックアウト ハンズオン用のリポジトリをチェックアウトして利用します。 このリポジトリには、ダイナミックインベントリやPlaybookなどの以 降で利用するファイル群が保存されています。 $ cd ~ $ git clone https://github.com/saito-hideki/ood-handson-ansible $ cd ood-handson-ansible ├── ansible.cfg ├── gce.ini ├── gce.py ├── hosts ├── playbooks │ └── gce │ └── create_instance.yml ├── README.md └── secrets.py.sample Ansibleの設定ファイル <ood-handson-ansibleリポジトリ> ダイナミックインベントリ設定ファイル ダイナミックインベントリインベントリファイル GCE用のダイナミックインベントリが 利用する認証設定ファイル Playbook 9
  • 10. Ansibleのインストール(1) Cloud Shell上にvirtualenv環境を構築します。 • 仮想環境名: ood2016 virtualenv環境への切り替え以降に、pipでインストールし たPythonモジュールやパッケージは、virtualenv環境であ る$HOME/ood2016/以下に配置されます。 Okinawa Open Days 2016 $ virtualenv ~/ood2016 $ source ~/ood2016/bin/activate (ood2016)$ virtualenvの環境名がプロンプトに表示されます virtualenv環境への切り替え virtualenv環境(ood2016)の作成 10
  • 11. Ansibleのインストール(2) AnsibleからGoogle Cloud Platformを操作するのに必要と なる Apache Libcloud を、pipでインストールします。 Okinawa Open Days 2016 (ood2016)$ pip install apache-libcloud Collecting apache-libcloud Downloading apache_libcloud-1.4.0-py2.py3-none-any.whl (2.3MB) 100% |████████████████████████████████| 2.4MB 559kB/s Installing collected packages: apache-libcloud Successfully installed apache-libcloud-1.4.0 Ansible GCPモジュール Apache Libcloud ServerServerServer 11
  • 12. Ansibleのインストール(3) pipを利用してAnsibleをインストールして、設定ファイルを 確認します。 Okinawa Open Days 2016 (ood2016)$ pip install ansible Installing setuptools, pip, wheel...done. [defaults] callback_whitelist = profile_tasks forks = 10 gathering = smart host_key_checking = False private_key_file=/home/<UserID>/.ssh/google_compute_engine transport = smart 設定ファイルパス: ~/ood-handson-ansible/ansible.cfg 設定可能なパラメータ > http://docs.ansible.com/ansible/intro_configuration.html 12
  • 13. Ansibleのインストール(4) Ansible(ver2.2.0.0)が正常に動作することを確認します。 Okinawa Open Days 2016 (ood2016)$ cd ~/ood-handson-ansible (ood2016)$ ansible --version ansible 2.2.0.0 config file = /home/<UserID>/ood-handson-ansible/ansible.cfg configured module search path = Default w/o overrides (ood2016)$ ansible localhost -i hosts -m ping localhost | SUCCESS => { "changed": false, "ping": "pong" } pingモジュールを利用して動作確認を行います。 SUCCESSとなっていれば、Ansibleは正常に動作しています チェックアウトしたリポジトリ上にある インベントリファイル(hosts)を利用します 13
  • 14. ansibleコマンドの書式 Okinawa Open Days 2016 ansibleコマンドは、パッケージをインストールしたり、対象 ホストを再起動するなど、連続しない単発のタスクを実行す るときに利用します。 [書式] ansible <host-pattern> [options] [例1] モジュールを実行する ansible <パターン> -i インベントリ -m モジュール ansible localhost -i hosts -m ping [例1] モジュールに変数を渡して実行する ansible <パターン> -i インベントリ -m モジュール -e "key=value" ansible localhost -i hosts -m debug -e "msg='Hello,World!'" [例2] アドホックにOSのコマンドを実行する ansible <パターン> -i インベントリ -a "コマンド" ansible testserver -i ./gce.py -a "uname -a" 14
  • 15. ansible-playbookコマンドの書式 Okinawa Open Days 2016 ansible-playbookコマンドは、ワークフローをYAML形式で 記述したPlaybookを使用して、連続するタスクを実行すると きに利用します。 [書式] ansible-playbook -i インベントリ playbook.yml [例1] Playbookを実行する ansible-playbook -i インベントリ ansible-playbook -i hosts playbook.yml [例2] Playbookを実行時に-eオプションで変数を与える ansible-playbook -i インベントリ -e "変数=値" Playbook ansible-playbook -i ./gce.py -e "hostname=testserver" playbook.yml [例3] Playbookを実行時に-tオプションでタグを指定する ansible-playbook -i インベントリ -t Playbook ansible-playbook -i ./gce.py -t start playbook.yml 15
  • 17. Ansibleの構成要素 Ansibleはコマンドラインベースのツールで、以下の要素か ら構成されています。 Okinawa Open Days 2016 # 構成要素 概要 1 Configuration Ansibleの振る舞いを決める設定ファイル 2 Inventory 管理対象ホストの一覧が記述されたファイル 3 Module タスクとしてAnsibleが実行するプログラム 4 Command タスクやPlaybookを実行するためのコマンド群 5 Playbook 複数のタスクから構成されるワークフロー定義ファイル 17
  • 18. Ansibleによる自動化の仕組み Okinawa Open Days 2016 (a) UNIXホストに対する操作 (b)Windowsホストに対する操作 (c)ネットワーク機器に対する操作 18
  • 20. ansible-playbookによるシナリオ実行 Okinawa Open Days 2016 AnsibleはPlaybookにより、オペレーションのコー ド化を実現しています。 Playbookは、実施する一連のタスクを、順序立て てYAML形式で記述したものです。 20
  • 22. インベントリファイルの課題 Ansibleでは、インベントリファイルと呼ばれるテキストファ イルで操作対象ホストの情報を管理しています。 Okinawa Open Days 2016 mail.example.com [webservers] foo.example.com bar.example.com [dbservers] www[00:50] <インベントリファイル> IPアドレスまたは名前解決可能なホスト名 複数のホストエントリのグループ化が可能 アルファベットと数字であればレンジ指定が可能 22
  • 24. ダイナミックインベントリを利用する GCPを対象として、ダイナミックインベントリを利用するに は、いくつかの準備が必要です。 Okinawa Open Days 2016 (1) ダッシュボードから"ツールとサービス"をクリックします (2) "API Manager"をクリックします (3) "認証情報"をクリックします サービスアカウントの準備 Google Cloud Platformのダッシュボードから、API Managerを利用 して認証情報を作成し、ダウンロードします。 24
  • 25. ダイナミックインベントリを利用する Okinawa Open Days 2016 サービスアカウントの準備 (4) "サービスアカウントキー"を作成します ファイル名: credential.json として保存してください 25
  • 26. ダイナミックインベントリを利用する Okinawa Open Days 2016 サービスアカウントの準備 作成した認証ファイルを、Cloud Shellにアップロードします。 (5) Cloud Shellのメニューバーからファイルアップロードを選択して、認証 ファイルアップロードします。 26
  • 27. ダイナミックインベントリを利用する Okinawa Open Days 2016 APIを有効化する Google Compute EngineをAPI経由で操作する機能を有効化します。 "API Manager"の"ライブラリ"から"Compute Engine API"を"有効"にします。 27
  • 28. ダイナミックインベントリを利用する Okinawa Open Days 2016 GCP認証ファイルの作成 Google Cloud PlatformのAPIを利用するために必要となる認証情報を 設定するファイル(secrets.py)を作成します。 secrets.pyの内容は以下の2行です。 GCE_PARAMS = ('<client_email>', '<credentialファイルパス>') GCE_KEYWORD_PARAMS = {'project': '<project_id>'} credential.jsonの"project_id"パラメータの値 credential.jsonの"client_email"パラメータの値 credential.jsonファイルのパス 28
  • 29. ダイナミックインベントリを利用する Okinawa Open Days 2016 ダイナミックインベントリの動作確認 GCP用のダイナミックインベントリは、Pythonスクリプトで提供され ています。 (ood2016)$ ./gce.py --help usage: gce.py [-h] [--list] [--host HOST] [--pretty] Produce an Ansible Inventory file based on GCE optional arguments: -h, --help show this help message and exit --list List instances (default: True) --host HOST Get all information about an instance --pretty Pretty format (default: False) (ood2016)$ ./gce.py --pretty --list (ood2016)$ ./gce.py --pretty --host <ホスト名> virtualenvの環境名がプロンプトに表示されいない場合は、以下のコマンドを実行してください $ source ~/ood2016/bin/activate 29
  • 30. 仮想マシンを起動する Okinawa Open Days 2016 GCEと連携して仮想マシンを起動する create_instance.ymlを適用し、仮想マシンを起動させてみましょう。 --- - hosts: localhost vars: gcp: driver: google hostname: "{{ hostname }}" machine_image: https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20161115 machine_type: n1-standard-1 project: ood2016-handson zone: asia-northeast1-a tasks: - command: > docker-machine create --driver "{{ gcp.driver }}" --google-project "{{ gcp.project }}" --google-zone "{{ gcp.zone }}" --google-machine-type "{{ gcp.machine_type }}" --google-machine-image "{{ gcp.machine_image }}" "{{ gcp.hostname }}" - command: gcloud compute ssh "{{ gcp.hostname }}" --zone "{{ gcp.zone }}" -- uname - name: show getting start debug: msg: "Usage: ssh -i <private-key file> -l {{ ansible_user_id }} {{ gcp.hostname }}.{{ gcp.zone }}.{{ gcp.project }}" tags: - usage Ansibleが実行するタスクが列挙されています GCEの情報や、起動する仮想マシンのスペックが定義されています タスクを実行するホストを指定しています みなさんの環境にあわせて修正してください 30
  • 31. 仮想マシンを起動する Okinawa Open Days 2016 (ood2016)$ cd ~/ood-handson-ansible/ (ood2016)$ ansible-playbook -i hosts -e "hostname=testserver" playbooks/gce/create_instance.yml PLAY [localhost] *************************************************************** TASK [setup] ******************************************************************* Friday 02 December 2016 16:33:15 +0900 (0:00:00.027) 0:00:00.027 ******* ok: [localhost] TASK [command] ***************************************************************** Friday 02 December 2016 16:33:16 +0900 (0:00:00.927) 0:00:00.955 ******* changed: [localhost] TASK [command] ***************************************************************** Friday 02 December 2016 16:39:07 +0900 (0:05:50.367) 0:05:51.323 ******* Enter passphrase (empty for no passphrase): 何も入力せずにEnter Enter same passphrase again: 何も入力せずにEnter changed: [localhost] TASK [show getting start] ****************************************************** Friday 02 December 2016 16:39:28 +0900 (0:00:21.277) 0:06:12.600 ******* ok: [localhost] => { "msg": "Usage: ssh -i <private-key file> -l %userid% testserver.asia-northeast1-a.ood2016-handson" } PLAY RECAP ********************************************************************* localhost : ok=4 changed=2 unreachable=0 failed=0 ... 以下略 ... <ansible-playbookコマンド実⾏結果> taskセクション を順次実⾏ -eオプションで変数を定義 31 Playbook
  • 32. 仮想マシンを起動する Okinawa Open Days 2016 GCEと連携した仮想マシンの起動プロセス ここでは、ローカルホストのCloud Shell上で、commandモジュール からdocker-machineコマンドを実行しています。 インベントリファイル モジュール Cloud Shell (4) API (1) read (5) create & boot (2) read 実行可能コード (3)generate exec instance 32
  • 33. 仮想マシンを起動する Okinawa Open Days 2016 起動した仮想マシンにログインする GCE上に起動した"testserver"に実際にログインしてみましょう。 (ood2016)$ ./gce.py --host testserver | jq .gce_public_ip "NNN.NNN.NNN.NNN" (ood2016)$ ssh -i ~/.ssh/google_compute_engine NNN.NNN.NNN.NNN <userd>@testserver:~$ hostname testserver <userd>@testserver:~$ exit logout Connection to NNN.NNN.NNN.NNN closed. (ood2016)$ SSHログイン成功! ダイナミックインベントリを利用してIPアドレスを調べる 33
  • 34. Dockerコンテナを起動する Okinawa Open Days 2016 testserverがAnsibleから操作できることを確認 GCE上に起動したtestserverが、Ansibleから操作できることを確認 します。ここでは、ダイナミックインベントリを利用しています。 (ood2016)$ ansible testserver -i ./gce.py -m ping testserver | SUCCESS => { "changed": false, "ping": "pong" } 1 2 3 3 GCE上のホストリストを取得 testserverの詳細情報を取得 testserver上でpingモジュールを実行 1 2 1 2 3 34
  • 35. Dockerコンテナを起動する Okinawa Open Days 2016 Dockerハンズオンで登録したイメージを再利⽤ Dockerハンズオンで作成・登録した、Dockerコンテナ(v1.0/v1.1)の イメージを再利用します。 モジュール ダイナミックインベントリ Cloud Shell (2) API (3) read (1) read 実行可能コード (4)generate instance (5) sftp(6) ssh / exec 実行可能コード CMDB 35
  • 36. Dockerコンテナを起動する Okinawa Open Days 2016 (ood2016)$ ansible-playbook -i ./gce.py -e "hostname=testserver" -e "tag=v1.0" playbooks/gce/launch_container.yml PLAY [testserver] ************************************************************** TASK [setup] ******************************************************************* Saturday 03 December 2016 14:01:29 +0900 (0:00:00.033) 0:00:00.033 ***** ok: [testserver] TASK [install requirement packages by apt] ************************************* Saturday 03 December 2016 14:01:31 +0900 (0:00:01.989) 0:00:02.023 ***** changed: [testserver] => (item=[u'python-pip']) TASK [install requirement packages by pip] ************************************* Saturday 03 December 2016 14:02:17 +0900 (0:00:46.477) 0:00:48.500 ***** changed: [testserver] => (item=docker-py) TASK [pull container image from gcr.io by gcloud command] ********************** Saturday 03 December 2016 14:02:22 +0900 (0:00:05.024) 0:00:53.525 ***** changed: [testserver] => (item=v1.0) changed: [testserver] => (item=v1.1) TASK [launch container] ******************************************************** Saturday 03 December 2016 14:02:46 +0900 (0:00:23.682) 0:01:17.208 ***** changed: [testserver] PLAY RECAP ********************************************************************* testserver : ok=5 changed=4 unreachable=0 failed=0 ...以下略... 36 変数指定 Playbook変数指定
  • 37. Dockerコンテナを起動する Okinawa Open Days 2016 GCPダッシュボードからHTTPアクセスを許可 起動したコンテナに対して、インターネット経由でのHTTPアクセス を許可します。 37
  • 38. Dockerコンテナを起動する Okinawa Open Days 2016 Webブラウザからアクセスする WebブラウザからコンテナにHTTPアクセスしてみましょう。 38
  • 39. Dockerコンテナを切り替える Okinawa Open Days 2016 (ood2016)$ ansible-playbook -i ./gce.py -e "hostname=testserver" -e "tag=v1.1" playbooks/gce/switch_container.yml PLAY [testserver] ************************************************************** TASK [setup] ******************************************************************* Saturday 03 December 2016 16:53:49 +0900 (0:00:00.046) 0:00:00.046 ***** ok: [testserver] TASK [stop container] ********************************************************** Saturday 03 December 2016 16:53:51 +0900 (0:00:01.637) 0:00:01.683 ***** changed: [testserver] TASK [launch container] ******************************************************** Saturday 03 December 2016 16:53:52 +0900 (0:00:01.111) 0:00:02.795 ***** changed: [testserver] PLAY RECAP ********************************************************************* testserver : ok=3 changed=2 unreachable=0 failed=0 ...以下略... 起動中のコンテナをv1.0からv1.1に切り替えます 起動中のv1.0を停止し、v1.1を起動することにより、アプリケーショ ンを切り替えてみましょう。 39 変数指定 Playbook変数指定
  • 40. Dockerコンテナを切り替える Okinawa Open Days 2016 Webブラウザからアクセスする WebブラウザからコンテナにHTTPアクセスしてみましょう。 40
  • 41. 仮想マシンを削除する Okinawa Open Days 2016 (ood2016)$ ansible-playbook -i hosts -e "hostname=testserver" playbooks/gce/delete_instance.yml PLAY [localhost] *************************************************************** TASK [setup] ******************************************************************* Saturday 03 December 2016 17:05:40 +0900 (0:00:00.023) 0:00:00.023 ***** ok: [localhost] TASK [delete instance from GCE] ************************************************ Saturday 03 December 2016 17:05:41 +0900 (0:00:00.484) 0:00:00.508 ***** changed: [localhost] PLAY RECAP ********************************************************************* localhost : ok=2 changed=1 unreachable=0 failed=0 ...以下略... 起動中の仮想マシンを削除します 最後に、GCE上で起動しているtestserverを削除するPlaybookを実行 してみましょう。 41 Playbook変数指定
  • 42. 仮想マシンを削除する Okinawa Open Days 2016 GCEと連携した仮想マシンの削除プロセス 起動時と同じプロセスで、今度はローカルホストのCloud Shell上で、 commandモジュールからdocker-machineコマンドを利用してインス タンスを削除します。 インベントリファイル モジュール Cloud Shell (4) API (1) read (5) delete (2) read 実行可能コード (3)generate exec instance 42
  • 44. IT Automation by Ansible Okinawa Open Days 2016 このハンズオンセッションでは、Ansibeを利用したオペレー ションの自動化について体験していただきました。 Ansibleに代表されるITオートメーションツールは、これまで 人間が行ってきた作業を自動化するための機能を提供してく れます Google Cloud PlatformやOpenStackのようなクラウド基盤 との連携機能を持っており、親和性が高いのが特徴です。 44
  • 45. Infrastructure as Code ITオートメーションツールを導入して、 手作業のコード化 を推進することで、ソフトウェア開発の分野で利用されてい るQAやテストなどの優れた手法を、ITインフラの運用管理 にも応用することができるようになります。 1.手順書のコード化 2.コードのリビジョンの管理 3.チケットシステムによる課題管理 4.コードレビュー 5.テスト 6.デプロイシステム 7.インフラの構成管理 Internet Week 2016 出展: Wikipedia 1〜7をシステマチックに連携させることで Infrastructure as Codeを実現する 45
  • 46. Ansible関連情報 • 公式サイト • https://www.ansible.com/ • Tower公式サイト • https://www.ansible.com/tower • 公式ドキュメント • http://docs.ansible.com/ansible/index.html • ソースコードリポジトリ • https://github.com/ansible/ansible • https://github.com/ansible/ansible-modules-core • https://github.com/ansible/ansible-modules-extras Internet Week 2016 46