SlideShare una empresa de Scribd logo
1 de 46
<akagisho@gmail.com>
Sep. 10, 2015
Ansible ではじめる
インフラのコード化入門
• Ansible、Vagrant、Serverspec などを用いた 「インフ
ラ ※ のコード化」 手法について、初心者向けに解説
します。
概要
※ インフラ: 今回は 「サーバインフラ」 のこと。
2
• 環境
• 開発環境: OS X or Linux
• 本番環境: Linux
• 各種ツールのインストール手順は省略します。
• Ansible, Vagrant, VirtualBox etc.
前提
3
こんな人向け
サーバ構築職人の朝は早い。
◯◯社で使われるサーバは、職人が一つ一つ手作業で構築している。
そのため日に数台が限度だという。
「まぁ好きではじめた仕事ですから」
最近は手順が複雑だと愚痴をこぼした。
職人の一日は、まず手順書の入念なチェックから始まる。
「一つ一つ仕上がりに微妙な差が出る。機械では出来ない」
さりげなく語るが、そこには年季と、確たる信念が見えた。
4
インフラのコード化
5
サーバの構築どうやってますか?
6
インフラのコード化
• Infrastructure as Code
• サーバの “あるべき状態” をプログラミング言語な
どの “コード” で書くことにより、構築や更新を自動
化すること
• インストールするべきパッケージ
• 各種設定 etc.
• “構成管理ツール” を用いて実現する
7
インフラをコード化するメリット
• 手作業との決別
• あいまいな手順書の駆逐
• 構築、更新作業がスケール
• だれがやっても同じものができる
• 品質の担保、オペミスの低減
• 手順を再利用しやすい
• 手順をバージョン管理できる
8
構成管理ツール
• Infrastructure as Code を実現するためのフレーム
ワーク
Chef Puppet Ansible
言語 Ruby Ruby Python
書式 Ruby DSL ※1 外部 DSL ※2 YAML
エージェント 要 要 不要
冪等性 ◯ ◯ ◯
※1 DSL (Domain Specific Language): 特定の用途向けに設計された言語
※2 外部 DSL: つまり独自の書式
9
冪等性 (べきとうせい)
• 「ある操作を1回行っても複数回行っても結果が同
じである」 という数学的概念
• e.g.
• abs(x) == abs(abs(x)) == abs(abs(abs(x))) == ...
• 構成管理とどう関係が?
Wikipedia より引用: https://ja.wikipedia.org/wiki/冪等 10
構成管理における冪等性
• e.g.)
• 2回以上実行すると、都度追記される
• つまり意図した状態とならない
# echo “UseDNS no” >> /etc/ssh/sshd_config
11
∴ この処理には冪等性がない
構成管理における冪等性
• e.g.)
• 1回目: Nginx がインストールされる
• 2回目以降: インストール済みだと表示され、ス
キップされる
何回実行しても、実行後は
「nginx がインストールされている」
という状態
$ sudo apt-get install -y nginx
12
∴ この処理には冪等性がある
構成管理における冪等性
• 先に挙げたような構成管理ツールも、各操作にお
いて冪等性が保たれるように設計されている
• 何回実行しても OK
• 構成管理ツールは
「サーバを構築する」
というより
「サーバをあるべき状態に収束させる」
という考え方であるといえる
13
Ansible
14
Ansible
• Python 製の構成管理ツール
• エージェントレス
• 対象サーバに余計なものを入れなくて良い
• ただし使用する Ansible モジュールによっては、
Python モジュールに依存関係がある
• YAML で記述
• とっつきやすい
• ただし条件分岐や繰り返し処理をしづらい
• Ansible 2 で改良される気配
15http://docs.ansible.com/
Ansible
• 標準モジュールが充実
• よくある操作はだいたいできる
• 冪等性がある
• 一部モジュールでは例外あり
16
Ansible の動作要件
SSH
・UNIX or Linux
・Ansible
(・Python 2.6 or 2.7)
Control Machine
Managed Node
provisioning
17
鍵認証
パスなしで sudo
・sshd
・Python 2.5+
Ansible の各種ファイル
• Inventory (必須)
• 対象ホストを定義するファイル
• ここに書かれていないホストは操作できない
• 対象ホストを動的に指定することも可能
(Dynamic Inventory; 今回は説明しない)
• Playbook
• Ansible の動作を定義するファイル
18
Inventory
• 対象ホストを列挙するファイル (ini 形式)
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com ansible_ssh_port=10022
[all:vars]
ansible_ssh_user=provuser
ssh ユーザ、ポート番号、
秘密鍵などを指定可
ホストのグループ化
19
グループに対しても指定可
• 単一の Ansible モジュールを実行する
• e.g.
ansible コマンド
20
10.200.19.201 ansible_ssh_user=vagrant
hosts
$ ansible -i hosts -m command -a uptime all
10.200.19.201 | success | rc=0 >>
00:05:35 up 3 min, 1 user, load average: 0.17, 0.18, 0.08
モジュール名 引数
対象ホスト実行結果
• Ansible の動作を定義するファイル
• タスクを列挙
• タスク = モジュール + 引数
• タスクは上から順に実行
Playbook
Playbook
└ tasks
├ modules
└ arguments
---
- hosts: all
sudo: yes
tasks:
- name: ensure nginx is installed
apt: pkg=nginx state=latest
- name: ...
モジュール名
引数
対象ホスト
21
• Playbook を実行する
ansible-playbook コマンド
22
$ ansible-playbook -i hosts main.yml
PLAY [all]
********************************************************************
GATHERING FACTS
***************************************************************
ok: [10.200.19.201]
TASK: [ensure nginx is installed]
*********************************************
changed: [10.200.19.201]
PLAY RECAP
********************************************************************
10.200.19.201 : ok=2 changed=1 unreachable=0 failed=0
実行結果
Inventory Playbook
• もう1回実行すると…
ansible-playbook コマンド
23
$ ansible-playbook -i hosts main.yml
PLAY [all]
********************************************************************
GATHERING FACTS
***************************************************************
ok: [10.200.19.201]
TASK: [ensure nginx is installed]
*********************************************
ok: [10.200.19.201]
PLAY RECAP
********************************************************************
10.200.19.201 : ok=2 changed=0 unreachable=0 failed=0
変更が発生しなかったので
“changed=0” になった
実行結果
Inventory Playbook
モジュール (の一部) 紹介
24
モジュール名 内容
copy ローカルのファイルをリモートにコピーする。
file ファイルの属性や所有者などを設定する。
template
ローカルのテンプレートファイル (Jinja2) をリ
モートでビルドする。
lineinfile リモートのファイルに1行追記する。
apt, yum apt / yum モジュールを管理する。
mysql_db,
mysql_user
MySQL のデータベースやユーザを管理する。
command OS のコマンドを実行する。
shell シェルを実行する。
:
• 目的に合ったモジュールがなくても、これらを使え
ばほぼなんでもできる
• ただし冪等性は自分で考えなければいけない
• 複数回実行しても問題ない書き方を
• register, changed_when などを用いて、変更が
あったときのみ changed になるように
command, shell モジュールの注意点
25
- name: bundle install
shell: >
bundle install --path vendor/bundle
chdir=/var/www/hogeapp
register: result
changed_when: "'Installing' in result.stdout”
Best Practice
• Ansible の各種ファイルの配置パターン (ディレクト
リ構成) の例示
• 詳細は公式ドキュメントを参照
26http://docs.ansible.com/ansible/playbooks_best_practices.html
Vagrant
27
Vagrant
• 仮想環境の構築ツール
• 同じ構成の VM を簡単にたくさん作れる
• “Vagrantfile” で定義されたスペックの VM を自動
で生成
• VirtualBox などに対応
• 仮想環境をパッケージして “box” という単位で管理
28https://www.vagrantup.com/
Vagrant
• ディストリビューション公式から私製まで、様々な
box が公開されている
• Vagrantbox.es
• Vagrant Cloud
• vagrant コマンドで操作
29
Usage: vagrant [options] <command> [<args>]
vagrant コマンドの使い方
30
サブコマンド 内容
box add <title> <url> box イメージを取得
init <title> Vagrantfile を作成
up VM を起動
ssh VM にログイン
suspend VM を一時停止
resume VM を再開
destroy -f VM を破棄
snapshot take 
<vm_name> <snapshot_name>
スナップショットを撮る
snapshot go 
<vm_name> <snapshot_name>
スナップショットに戻す
:
vagrant コマンドの使い方
• e.g.) Ubuntu 14.04 を起動
1. Vagrantfile を作成
1. VM を起動
$ vagrant init ubuntu/trusty64
31
$ vagrant up
Vagrant Cloud 上の box を使うなら
{username}/{title}
これだけで何かしらの OS を起動できる
Vagrant with Ansible
• Vagrant は Ansible でのプロビジョニングに対応
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define :node1 do |node|
node.vm.box = "ubuntu/trusty64”
node.vm.network :private_network, ip: "10.200.19.13"
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "site.yml"
ansible.groups = {
"webservers" => ["node1"]
}
ansible.extra_vars = "group_vars/all"
end
end
box 名
Playbook
グループとホストの紐付け
変数
Vagrantfile
32
Vagrant with Ansible
• で、初回起動時に自動でプロビジョニン
グを実行
• 2回目以降は で実行
vagrant up
vagrant provision
33
$ vagrant up
Bringing machine 'node1' up with 'virtualbox' provider...
==> node1: Importing base box 'ubuntu/trusty64'...
(略)
==> node1: Running provisioner: ansible...
(略)
PLAY RECAP
**************************************************************
node1 : ok=28 changed=26 unreachable=0 failed=0
実行結果
• 「Vagrant はわかった。オンプレや KVM 上での OS
インストールも自動化したい」
⇒ 以下のキーワードを調べよう
• PXE ブート, Kickstart, Preseed, Cobbler
• virt-install
• https://gist.github.com/akagisho/0f7fc8b05f78e1dc13bd
• uvtool
• https://gist.github.com/akagisho/5d958e46a9afcf443395
その他の自動化
34
ここまでのおさらい
Ansible
構成管理ツール。インフラのコード化、構築
自動化を実現できる。
Vagrant
仮想環境構築ツール。VirtualBox などの VM
を簡単に作れる。
35
Vagrantfile と Ansible の Playbook さえあれば
vagrant up だけで手元に環境を構築できる!
Serverspec
36
Serverspec
• Ruby 製のサーバ用テストフレームワーク
• “サーバのあるべき状態” を定義する
e.g.
• ◯◯ がインストールされている
• ◯◯ が起動している
• Port◯◯ を listen している etc.
37http://serverspec.org/
Serverspec の使い方
• コマンドで初期設定
38
$ bundle exec serverspec-init
Select OS type:
1) UN*X
2) Windows
Select number: 1
Select a backend type:
1) SSH
2) Exec (local)
Select number: 1
Vagrant instance y/n: n
Input target host name: www.example.jp
実行結果
serverspec-init
• spec ファイルを編集
Serverspec の使い方
39
require 'spec_helper'
describe package('nginx'), :if => os[:family] == 'ubuntu' do
it { should be_installed }
end
describe service('nginx'), :if => os[:family] == 'ubuntu' do
it { should be_enabled }
it { should be_running }
end
describe port(80) do
it { should be_listening }
end
spec/www.example.jp/sample_spec.rb
◯◯がインストール済み
◯◯が起動中
◯◯の自動起動が有効
Port◯◯ を listen
• を実行
Serverspec の使い方
40
$ bundle exec rake spec
Package "nginx"
should be installed
Service "nginx"
should be enabled
should be running
Port "80"
should be listening
Finished in 0.18411 seconds (files took 1.8 seconds
to load)
4 examples, 0 failures
実行結果
テストが通った
rake spec
• Ansible の設定ファイルをもとに、Serverspec のテス
トと対象サーバを紐付けてくれる gem パッケージ
※ Ansible の Playbook からテストを自動生成するわけで
はない
• インストール:
• を実行
• を実行
ansible_spec
41
gem 'rake'
gem 'ansible_spec'
Gemfile
bundle install
https://github.com/volanja/ansible_spec
ansiblespec-init
• Ansible のファイル配置は “Best Practice” のディレ
クトリ構成にしておく
• spec ファイルを以下の位置に作成
• 以下のコマンドでテストを実行
ansible_spec
42
roles/<ロール名>/spec/<適当な名前>_spec.rb
$ PLAYBOOK=<Playbook> INVENTORY=<Inventory> 
bundle exec rake serverspec:<グループ名>
Ansible の Inventory ファイルの
グループごとにテストを実行できる
まとめ
43
• Ansible でインフラのコード化を実現
• Vagrant と組み合わせて、手軽に開発環境を構築
• Serverspec, ansible_spec でインフラのテストを実行
まとめ
44
参考文献
• 入門 Chef Solo / 伊藤 直也 著
• Serverspec / 宮下 剛輔 著
• Software Design 2014年11月号
45
おわり
46

Más contenido relacionado

La actualidad más candente

AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』健太 松浦
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)akira6592
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)Sugawara Genki
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンseiichi arai
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門kk_Ataka
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門Yasutaka Sugamura
 

La actualidad más candente (20)

AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターン
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 

Destacado

2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」Ryo Okubo
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話Shohei Koyama
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu AsanoInsight Technology, Inc.
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Kishin Yagami
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみたShuntaro Saiba
 
ほんとうはこわいAnsible
ほんとうはこわいAnsibleほんとうはこわいAnsible
ほんとうはこわいAnsibleTakahiro Nakayama
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!hiyohiyo
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)Shingo Kitayama
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackMasataka Tsukamoto
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうTakayuki Hayashi
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)NTT DATA OSS Professional Services
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれからTaira Hajime
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールKen Sawada
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話Shohei Koyama
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp hiyohiyo
 

Destacado (20)

2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
 
ほんとうはこわいAnsible
ほんとうはこわいAnsibleほんとうはこわいAnsible
ほんとうはこわいAnsible
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろう
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれから
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp
 

Similar a Ansible ではじめるインフラのコード化入門

インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~Takeshi Kuramochi
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化hiroyuki nakajima
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Kazuyuki Ichikawa
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016Hideki Saito
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみましたShuntaro Saiba
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月VirtualTech Japan Inc.
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたTakashi Umeno
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合Ryo Kuroda
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2Etsuji Nakai
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築Saito5656
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleHideki Saito
 

Similar a Ansible ではじめるインフラのコード化入門 (20)

Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみた
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
 
Openstack chef-repo
Openstack chef-repoOpenstack chef-repo
Openstack chef-repo
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
 

Más de Sho A

HTTP入門
HTTP入門HTTP入門
HTTP入門Sho A
 
ドメイン名入門
ドメイン名入門ドメイン名入門
ドメイン名入門Sho A
 
DNS 入門
DNS 入門DNS 入門
DNS 入門Sho A
 
Unix コマンド入門
Unix コマンド入門Unix コマンド入門
Unix コマンド入門Sho A
 
Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎Sho A
 
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Sho A
 
Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!Sho A
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
PHPフレームワーク入門
PHPフレームワーク入門PHPフレームワーク入門
PHPフレームワーク入門Sho A
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 

Más de Sho A (10)

HTTP入門
HTTP入門HTTP入門
HTTP入門
 
ドメイン名入門
ドメイン名入門ドメイン名入門
ドメイン名入門
 
DNS 入門
DNS 入門DNS 入門
DNS 入門
 
Unix コマンド入門
Unix コマンド入門Unix コマンド入門
Unix コマンド入門
 
Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎
 
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
 
Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
PHPフレームワーク入門
PHPフレームワーク入門PHPフレームワーク入門
PHPフレームワーク入門
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 

Ansible ではじめるインフラのコード化入門