SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Ansible入門
!
the simplest way to automate IT
の前に
Infrastructure as Code
Infrastructure as Code
• 手順書ベースに構築・管理をしてきたインフラ
• これをコードで管理しようという流れ
• もちろん自動化する → Ansible !!
• 手順がすべてコードに
• インフラもコードレビュー
• DevOps
• バージョン管理
Immutable Infrastructure
Immutable Infrastructure
• 不変な、状態を持たない、廃棄可能な
• クラウドなこの時代の流れ
• ベキトウセイとはいえ状態を管理するのは大変

→ならしなければいいじゃん

 →つくったらさわらない
• つくって、切り替えて、廃棄

ブルーグリーンデプロイメント
Immutable Infrastructure
• ステートレス/ステートフル
• DBといったものは難しい
• アプリケーション設計時点で考えを盛り込んどか
んとあかん
• まずステートレスなモノを対象に
本題
Ansibleってなに?
• 構成管理系ツール
• ChefとかPuppetとかと同じ感じのもの
• Pythonさんでつくられている
• つかっているところ
構成管理系=>IT自動化
• Configuration Management

もちろん構成管理としても
• Application Deployment

デプロイ自動化もこの子でできる
• Continuous Delivery (with Jenkins, etc.)

継続的デリバリーにも
• Cloud & Amazon (AWS, EC2) Automation

クラウドにも
他構成管理ツールとの違い
• yamlで記述するのでわかりやすい
• 対象サーバにクライアントを入れる必要がない

python2.4 + sshさえつながればOK
• ファイル構成が簡単
インストール
$ sudo yum install ansible
!
他OSはこちら

http://docs.ansible.com/intro_installation.html#installing-the-control-machine
必要なもの 環境
• ホスト
• Python 2.6以上
• クライアント
• Python 2.4以上
• Python 2.4の場合はpython-simplejsonも
必要もの ファイル
• Inventory
• 対象となるホストを書く
• playbook
• 何するのかを書く
Inventory
mail.example.com
!
[webservers] #グルーピング
foo.example.com #ホストを書く
bar.example.com
!
[dbservers]
one.example.com
two.example.com
three.example.com
playbook
- hosts: webservers #[webservers]グループを対象にする
vars: #playbookでの変数も設定可能
http_port: 80
max_clients: 200
remote_user: root #実行ユーザ
tasks: #やるタスク一覧、実行順序は書いてある順
- name: ensure apache is at the latest version #実行時に出力される、日本語可
yum: pkg=httpd state=latest #実行するモジュール 後述
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify: #変更があったら実行する
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache #notifyの実行コマンド
service: name=httpd state=restarted
dry run
$ ansible-playbook -i ${INVENTORY_FILE} {PLAYBOOK} --check
実行
$ ansible-playbook -i ${INVENTORY_FILE} {PLAYBOOK}
結果(中身違うごめん)
PLAY [zabbix_server] **********************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.34.10]
TASK: [be sure mysql-server is installed] *************************************
ok: [192.168.34.10]
TASK: [be sure zabbix is installed] *******************************************
ok: [192.168.34.10]
TASK: [be sure zabbix-server is installed] ************************************
ok: [192.168.34.10]
:
PLAY RECAP ********************************************************************
192.168.34.10 : ok=14 changed=0 unreachable=0 failed=0
#okは既に設定されているからやらなかった、changedは変更したってこと(ベキトウセイ)
それぞれについてもう
ちょっと詳しく
Inventory
• Inventory range
• group
• host variables
• group variables
Inventory rage
[webservers]
www[01:50].example.com #範囲指定もできる
!
!
[databases]
db-[a:f].example.com #こんな範囲指定もできる
group
[atlanta]
host1
host2
!
[raleigh]
host2
host3
!
[southeast:children] #グルーピング
atlanta
raleigh
!
[usa:children] #グループをさらにグループ
southeast
northeast
southwest
northwest
Host Variables
[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909
!
#ホストごとの変数を設定できる
#playbookで使用できる
Group Variables
[atlanta]
host1
host2
!
[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
!
#グループごとの変数も設定できる
playbook
• include
• roles
• conditions
• loop
• tags
• prompts
• error handling
include
tasks:
!
- include: tasks/foo.yml
- include: tasks/bar.yml
!
#playbookがでかくなりすぎないように
roles
- hosts: webservers
roles:
- common
- webservers
!
#グループにロールを割り当てるイメージ?
#次資料の構成にすると勝手に自分のロールのディレクトリ配下を見てくれる?
roles
site.yml
webservers.yml
fooservers.yml
roles/
common/
files/
templates/
tasks/
handlers/
vars/
meta/
webservers/
files/
templates/
tasks/
handlers/
vars/
meta/
conditionals
tasks:
- name: "shutdown Debian flavored systems"
command: /sbin/shutdown -t now
when: ansible_os_family == Debian
!
# OSがDebian familyの場合のみ実行する
loop
- name: add user testuser1
user: name=testuser1 state=present groups=wheel
- name: add user testuser2
user: name=testuser2 state=present groups=root
!
#上を下に書き換えられる
!
- name: add several users
user: name={{ item.name }} state=present groups={{ item.groups }}
with_items:
- { name: 'testuser1', groups: 'wheel' }
- { name: 'testuser2', groups: 'root' }
loop
users:
alice:
name: Alice Appleworth
telephone: 123-456-7890
bob:
name: Bob Bananarama
telephone: 987-654-3210
!
tasks:
- name: Print phone records
debug: msg="User {{ item.key }} is {{ item.value.name }}
({{ item.value.telephone }})"
with_dict: users
!
#Hashもつかえます
tags
tasks:
!
- yum: name={{ item }} state=installed
with_items:
- httpd
- memcached
tags:
- packages
!
- template: src=templates/src.j2 dest=/etc/foo.conf
tags:
- configuration
!
# ansible-playbook -t ${tag} で指定したtagのtaskだけを実行する
# ansible-playbook --tags configuration,packages" で複数指定もできる
prompts
vars_prompt: #ユーザに入力させた値を使う
- name: "release_version"
prompt: "Product release version"
default: 1.0" #デフォルト値の設定
̶
vars_prompt:
- name: "some_password"
prompt: "Enter password"
private: yes #パスワードをログに残さない
!
- name: "release_version"
prompt: "Product release version"
private: no
error handling
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr
!
#切り戻しに使えそうです
taskに記述する
Module
Modules
http://docs.ansible.com/modules_by_category.html
• All Modules
• Cloud Modules
• Commands Modules
• Database Modules
• Files Modules
• Internal Modules
• Inventory Modules
• Messaging Modules
• Monitoring Modules
• Net Infrastructure Modules
• Network Modules
• Notification Modules
• Packaging Modules
• Source Control Modules
• System Modules
• Utilities Modules
• Web Infrastructure Modules
• Windows Modules
たくさんある。
使いそうなものを
ピックアップ
module yum
- name: install the latest version of Apache #最新版をいれろー
yum: name=httpd state=latest
!
- name: remove the Apache package #けせー
yum: name=httpd state=absent
!
- name: install the latest version of Apache from the testing repo #testingリポジトリからいれろー?
yum: name=httpd enablerepo=testing state=present
!
- name: upgrade all packages #全アップデート
yum: name=* state=latest
!
- name: install the nginx rpm from a remote repo #nginxのリポジトリ追加
yum: name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-
centos-6-0.el6.ngx.noarch.rpm state=present
!
- name: install nginx rpm from a local file #ローカルファイルからのインストール
yum: name=/usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present
module service
# Example action to start service httpd, if not running #起動
- service: name=httpd state=started
!
# Example action to stop service httpd, if running #停止
- service: name=httpd state=stopped
!
# Example action to restart service httpd, in all cases #再起動
- service: name=httpd state=restarted
!
# Example action to reload service httpd, in all cases #再読み込み
- service: name=httpd state=reloaded
!
# Example action to enable service httpd, and not touch the running state #サービス有効
- service: name=httpd enabled=yes
!
# Example action to start service foo, based on running process /usr/bin/foo #statusコマンドがないやつ
- service: name=foo pattern=/usr/bin/foo state=started #はプロセスを見て確認
!
# Example action to restart network service for interface eth0 #ネトワ再起動
- service: name=network state=restarted args=eth0
module command
# Example from Ansible Playbooks.
- command: /sbin/shutdown -t now
!
# Run the command if the specified file does not exist.
- command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database
!
# You can also use the 'args' form to provide the options. This command
# will change the working directory to somedir/ and will only run when
# /path/to/database doesn't exist.
- command: /usr/bin/make_database.sh arg1 arg2
args:
chdir: somedir/
creates: /path/to/database
!
# so variables like $HOME and operations like "<", ">", "¦", and "&" will not work
#(use the shell module if you need these features).
module shell
# Execute the command in remote shell; stdout goes to the specified
# file on the remote.
- shell: somescript.sh >> somelog.txt
!
# Change the working directory to somedir/ before executing the command.
- shell: somescript.sh >> somelog.txt chdir=somedir/
!
# You can also use the 'args' form to provide the options. This command
# will change the working directory to somedir/ and will only run when
# somedir/somelog.txt doesn't exist.
- shell: somescript.sh >> somelog.txt
args:
chdir: somedir/
creates: somelog.txt
!
#command through a shell (/bin/sh) on the remote node
module mysql_db
# Create a new database with name 'bobdata'
- mysql_db: name=bobdata state=present
!
# Copy database dump file to remote host and restore it to database
'my_db'
- copy: src=dump.sql.bz2 dest=/tmp
- mysql_db: name=my_db state=import target=/tmp/dump.sql.bz2
module mysql_user
# Create database user with name 'bob' and password '12345' with all database
privileges
- mysql_user: name=bob password=12345 priv=*.*:ALL state=present
!
# Creates database user 'bob' and password '12345' with all database privileges
and 'WITH GRANT OPTION'
- mysql_user: name=bob password=12345 priv=*.*:ALL,GRANT state=present
!
# Ensure no user named 'sally' exists, also passing in the auth credentials.
- mysql_user: login_user=root login_password=123456 name=sally state=absent
!
# Specify grants composed of more than one word
- mysql_user: name=replication password=12345 priv=*.*:"REPLICATION CLIENT"
state=present
module mysql_replication
# Stop mysql slave thread
- mysql_replication: mode=stopslave
!
# Get master binlog file name and binlog position
- mysql_replication: mode=getmaster
!
# Change master to master server 192.168.1.1 and use binary log
'mysql-bin.000009' with position 4578
- mysql_replication: mode=changemaster master_host=192.168.1.1
master_log_file=mysql-bin.000009 master_log_pos=4578
module copy
# Example from Ansible Playbooks
- copy: src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo
group=foo mode=0644
!
# Copy a new "ntp.conf file into place, backing up the original if it differs
from the copied version
- copy: src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root
mode=644 backup=yes
!
# Copy a new "sudoers" file into place, after passing validation with
visudo
- copy: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'
module fetch
# Store file into /tmp/fetched/host.example.com/tmp/somefile
- fetch: src=/tmp/somefile dest=/tmp/fetched
!
# Specifying a path directly
- fetch: src=/tmp/somefile dest=/tmp/prefix-{{ ansible_hostname }}
flat=yes
!
# Specifying a destination path
- fetch: src=/tmp/uniquefile dest=/tmp/special/ flat=yes
!
# Storing in a path relative to the playbook
- fetch: src=/tmp/uniquefile dest=special/prefix-{{ ansible_hostname }}
flat=yes
module file
- file: path=/etc/foo.conf owner=foo group=foo mode=0644
- file: src=/file/to/link/to dest=/path/to/symlink owner=foo group=foo
state=link
- file: src=/tmp/{{ item.path }} dest={{ item.dest }} state=link
with_items:
- { path: 'x', dest: 'y' }
- { path: 'z', dest: 'k' }
module replace
- replace: dest=/etc/hosts regexp='(s+)old.host.name(s+.*)?$'
replace='1new.host.name2' backup=yes
!
- replace: dest=/home/jdoe/.ssh/known_hosts regexp='^old.host
.name[^n]*n' owner=jdoe group=jdoe mode=644
!
- replace: dest=/etc/apache/ports regexp='^(NameVirtualHost¦Listen)s
+80s*$' replace='1 127.0.0.1:8080' validate='/usr/sbin/apache2ctl -f
%s -t'
module template
# Example from Ansible Playbooks
- template: src=/mytemplates/foo.j2 dest=/etc/file.conf owner=bin
group=wheel mode=0644
!
# Copy a new "sudoers" file into place, after passing validation with
visudo
- template: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf
%s
!
#Templates are processed by the Jinja2 templating language
module irc
- irc: server=irc.example.net channel="#t1" msg="Hello world"
!
- local_action: irc port=6669
channel="#t1"
msg="All finished at {{ ansible_date_time.iso8601 }}"
color=red
nick=ansibleIRC
こんなかんじ
個人的に
Chef/Pupeet
より使いやすそう
公式マニュアルも
わかりやすい
こっちを
使ってみませんか?
インフラもCI
serverspec/Infrataster
おまけ
!
公式にディレクトリ構成の
ベストプラクティスもあがってます
とりあえずみとけ。
• 公式サイト

http://www.ansible.com/home
• 第1回Ansible勉強会

http://ansible-users.connpass.com/event/5968/presentation/
• AnsibleTutorial

http://yteraoka.github.io/ansible-tutorial/
• ansibleを使ってみる

http://tdoc.info/blog/2013/04/20/ansible.html
• Ansibleでもっとも重要な設定

http://tdoc.info/blog/2013/12/14/ansible_most_important_thing.html

Más contenido relacionado

La actualidad más candente

Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門辰徳 斎藤
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugTakeshi Komiya
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy toolYuki Shibazaki
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜Naotoshi Seo
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Hidetoshi Hirokawa
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなしMasahiro NAKAYAMA
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Kamimura Taichi
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)CLARA ONLINE, Inc.
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Yoshinori Nakanishi
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented featuretamtam180
 

La actualidad más candente (20)

Fabric Essentials
Fabric EssentialsFabric Essentials
Fabric Essentials
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
 
Ansible handson
Ansible handsonAnsible handson
Ansible handson
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented feature
 

Similar a Ansible入門

AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationyukihiro kawada
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
Mongo dbのgridfsについて
Mongo dbのgridfsについてMongo dbのgridfsについて
Mongo dbのgridfsについてMasahiro Saito
 
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Hiro Yoshioka
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理博文 斉藤
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in SapporoYoshikazu Aoyama
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINARVirtualTech Japan Inc.
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 

Similar a Ansible入門 (20)

AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
web server
web serverweb server
web server
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Mongo dbのgridfsについて
Mongo dbのgridfsについてMongo dbのgridfsについて
Mongo dbのgridfsについて
 
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 

Más de Akira Otsuka

XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記
XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記
XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記Akira Otsuka
 
図書館駆動読書 (Toshokan Driven Dokusho)
図書館駆動読書 (Toshokan Driven Dokusho)図書館駆動読書 (Toshokan Driven Dokusho)
図書館駆動読書 (Toshokan Driven Dokusho)Akira Otsuka
 

Más de Akira Otsuka (6)

XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記
XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記
XP祭り2019 A-3-1 突然アジャイル人材の育成を任されたエンジニアの奮闘記
 
図書館駆動読書 (Toshokan Driven Dokusho)
図書館駆動読書 (Toshokan Driven Dokusho)図書館駆動読書 (Toshokan Driven Dokusho)
図書館駆動読書 (Toshokan Driven Dokusho)
 
GraphQL
GraphQLGraphQL
GraphQL
 
serverless
serverlessserverless
serverless
 
Kibana3
Kibana3Kibana3
Kibana3
 
ict antena
ict antenaict antena
ict antena
 

Ansible入門