SlideShare a Scribd company logo
2015.09.10 (Thu)
Ansible 入門 #01 (初心者向け)
CyberZ 廣瀬 太郎
Ansible説明会
1. Ansibleとは
2. Ansibleの特徴
3. Ansibleの用語解説
※この資料は以下のようなAnsible初心者を対象としています
✤ Ansibleを触ってみたい、導入したいと考えている方
✤ サーバー構築とかやってる方
✤ サーバーデプロイを効率化したい方
✤ Chefは辛い方
✤ Ansibleって響きが気になる方
1. Ansibleとは
Ansibleとは
“Ansible is Simple IT Automation”
SIMPLE AGENTLESS POWERFUL
Automate in hours - not
weeks - with Ansible's
human-readable IT
automation language.
Ansible uses SSH instead
of agents. More efficient,
more secure and less to
manage.
App deployment,
configuration
management and
orchestration - all from
one system.
qt: http://www.ansible.com/home
なぜやるの?
1) 構成管理
✤ ドキュメントが古い
✤ 更新も面倒
✤ Snapshot, AMIが秘伝のタレ化
✤ 何が動いているのか分からない
✤ まっさらなOSから環境構築でき
ない
✤ このサーバは「どうあるべき」なの
か
なぜやるの?
2) 自動化
✤ 加速するビジネス
✤ 初動はできるだけ早く
✤ 付加価値増に集中したい
✤ 定常業務は低コストで
✤ アプリケーションデプロイ
✤ 脆弱性対応
世にあるツール
Fabric
Configuration Orchestration
世にあるツール
Fabric
Configuration Orchestration
世にあるツール
Fabric
Configuration Orchestration
2. Ansibleの特徴
Ansibleの特徴
“Ansible is Simple IT Automation”
SIMPLE AGENTLESS POWERFUL
Automate in hours - not
weeks - with Ansible's
human-readable IT
automation language.
Ansible uses SSH instead
of agents. More efficient,
more secure and less to
manage.
App deployment,
configuration
management and
orchestration - all from
one system.
qt: http://www.ansible.com/home
Ansibleの特徴
“Ansible is Simple IT Automation”
✤ 定義はYAML( 設定ファイル)
✤ プログラムですら無いため学習障壁が少ない
SIMPLE
Automate in hours - not
weeks - with Ansible's
human-readable IT
automation language.
---
- hosts: webservers
tasks:
- name: yum install nginx
yum: pkg=nginx state=installed
Ansibleの特徴
“Ansible is Simple IT Automation”
✤ agentインストール不要
✤ 運用管理サーバでansible*コマンドが使えればOK
✤ Pythonが入っていれば導入可能
✤ 専用のserverやagentの運用管理不要
✤ 常駐するプロセスはなし
AGENTLESS
Ansible uses SSH instead
of agents. More efficient,
more secure and less to
manage.
Ansibleの特徴
“Ansible is Simple IT Automation”
✤ 構成管理だけでなくOrchestrationとしても使えるので、
ちょっとした操作や調査の支援ツールにもなる
✤ 高機能だが、スモールスタートで始めることも可能
POWERFUL
App deployment,
configuration
management and
orchestration - all from
one system.
柔軟な実行方法
✤ 指定したタイミングで実行
✤ 複数並列実行
✤ 必要な処理だけをone-linerでadhocに実行
✤ Push型だけでなくPull型もサポート (ansible-pull)
Ansibleの特徴
“Ansible is Simple IT Automation”
冪等性
✤ 記載したDSLの定義の状態に収束してくれる
✤ ある操作を何回行っても結果は同じ
✤ 変更がなければ処理をスキップする
以下がインストールされていること
・nginx
・java
・zabbix_agentd
サービスが起動していること
・nginx
・zabbix_agentd
3. Ansibleの用語解説
主なコマンド
✤ ansible
✤ Adhocに実行する
✤ ansible-playbook
✤ 作成した定義 (playbook) を実行する
# コマンド実行例
$ ansible -m 'ping' webservers
ansible-test02 | success >> {
"changed": false,
"ping": "pong"
}
# dry-run
$ ansible-playbook hands-on00.yml --check --diff
…
PLAY RECAP ********************************************************************
ansible-test02 : ok=2 changed=0 unreachable=0 failed=0
# execute
$ ansible-playbook hands-on00.yml
…
PLAY RECAP ********************************************************************
ansible-test02 : ok=2 changed=0 unreachable=0 failed=0
Inventory Host
Ansibleで管理するホストをini形式で記載する
✤ ホストのグルーピングが可能
# 例: example.com サイトをAnsibleで管理する
mail.example.com
[webservers]
foo.example.com
bar.example.com
Playbook
実行する処理の内容をYAML形式で記載する
✤ 最初はplaybookとinventry hostさえあればOK
---
- hosts: webservers
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=templates/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
Task (Tasks lists)
具体的な処理を、実行する順に配列で記載する
✤ 基本は name と module のセットを記載する
✤ 実行条件やトリガー (notify/handler) を加えることも可能
✤ 実行条件: [when, changed_when, ignore_errors, always_runなど]
✤ トリガー: handlers で記載した処理の名前をnotifyで指定
---
- hosts: webservers
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=templates/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
Module
Tasksで指定した処理を実行する汎用ライブラリ
✤ Modules are “idempotent” (冪等性)
✤ Core Modulesだけでも必要な作業は大体カバーできる
---
- hosts: webservers
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=templates/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
代表的なModule
✤ yum / apt : パッケージ管理 (インストール, 削除など)
✤ service : サービス操作 (起動, 停止, 再起動など)
✤ file : ファイル操作 (作成, 削除, 属性変更など)
✤ copy : ファイルをコピー
✤ template : ファイルを雛形としてファイル生成 (後述)
✤ shell : 任意のshellコマンドを実行(※冪等性は自分で担保)
✤ 具体的な操作の他、“register” を併用して条件分岐に利用する等の使い方もある
公式ドキュメントにModuleの一覧と説明があるので、詳しくは以下を参照ください。
http://docs.ansible.com/ansible/modules_by_category.html
共通化 (Include / Role)
✤ Include:
✤ tasksやhanderls等を別ファイルとして切り出し、一つのRole
としてまとめておくことで再利用しやすくする
---
- hosts: webservers
tasks:
- include: apache.yml
- include: deploy.yml site=service_A
- include: deploy.yml site=service_B
共通化 (Include / Role)
✤ Role:
✤ task, vars, files, templates, handlers一式を共通化
✤ playbookからは roles 一発で呼び出しできる
✤ 複数サーバに適用する、汎化させるなどの用途で活用
# playbook
---
- hosts: webservers
roles:
- common
- webserver
# ディレクトリ構成
hosts
webservers.yml
roles/
common/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
webservers/
…
共通化 (Template / Variable)
✤ Template:
✤ 変数をbindして配布できる
✤ ホスト毎に異なるようなファイルを配布するときに活用
✤ 書式は “Jinja2”
# files/etc/motd.j2
##################################################
!!! Production server {{ ansible_hostname }} !!!
##################################################
__| __|_ )
_| ( / Amazon Linux AMI
___|___|___|
https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/
共通化 (Template / Variable)
✤ Variable:
✤ 条件分岐やTemplateで利用する変数を定義し呼出可能
✤ 書式はYAML
✤ playbook, inventry host, varsなど様々な箇所で指定可能
✤ OS層の下回りの情報はansibleが自動で取得し呼出可能 (Facts)
✤ 利用可能な変数は `ansible hostname -m setup` で確認可能
✤ Chefで言う ohai
# Variables
innodb_buffer_pool_size: 6144M
innodb_log_file_size: 2048M
max_connections: 1000
…
$ ansible ansible-test02 -m 'setup'
ansible-test02 | success >> {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"172.31.xx.xx"
],
"ansible_all_ipv6_addresses": [],
"ansible_architecture": "x86_64",
"ansible_bios_date": "NA",
"ansible_bios_version": "NA",
"ansible_cmdline": {
"KEYTABLE": "us",
"LANG": "ja-JP.UTF-8",
Hands On!
Installation
1. サーバログイン
1. サーバ (Ansible: 1, Target: 1) へのSSH接続
✤ 接続情報は個別にお渡しします
2. Ansible実行用の 作成と配布
1. Ansibleサーバ上で`ssh-keygen` で作成 (パスフレーズなし)
2. ec2-user@target:/home/ec2-user/.ssh/authorized_keys に 公開 (id_rsa.pub) をcopy
3. Ansibleサーバの /etc/hosts に Targetサーバを PrivateIP で記載 ( `sudo vim /etc/hosts` )
4. Ansible → Target へのssh接続確認
3. Ansibleインストール
1. `sudo pip install ansible`
2. `sudo mkdir /etc/ansible && sudo chown ec2-user:ec2-user /etc/ansible && cd /etc/
ansible`
3. `touch hosts`
4. `wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg `
Ansible手始め
1. Inventory Hostを記載
2. Ansibleコマンドを試し打ち
✤ `ansible TARGET -m 'ping'`
✤ `ansible TARGET -m 'setup'`
# /etc/ansible/hosts
[webservers]
ansible-target0x
4. ディレクトリ構成 (Best Practice)
BestPractice
Best Practices Directory
Layout - Ansible
Documentation
production # Inventory Hostはグループごとに作成
staging # 〃
group_vars/ # グループ用の変数の格納場所
group1 #
group2 #
host_vars/ # ホスト用の変数の格納場所
hostname1 #
hostname2 #
library/ # 自作Moduleの格納場所 (optional)
filter_plugins/ # 自作Filter Pluginの格納場所 (optional)
site.yml # master Playbook
webservers.yml # Playbook
dbservers.yml # Playbook
roles/ # ロール (Role) の格納場所
common/ # “common” ロール
tasks/ # Taskの格納場所
main.yml # <-- Taskがもし多くなる場合は小さく分ける
handlers/ # Handlerの格納場所
main.yml # <-- 〃
templates/ # Templateの格納場所
ntp.conf.j2 # <------- Templateファイル名は *.j2
files/ # Fileの格納場所
bar.txt #
foo.sh #
vars/ # Varsの格納場所
main.yml #
defaults/ #
main.yml # Varsのデフォ値 (group/host_varsで上書き可)
meta/ # ロールの依存関係があれば定義
Hands On1(20min)
1. 運用ツールをインストール
✤ telnet, wget, rsync, tree, tcpdump,
sysstat, dstat, vim-enhanced, git, htop
2. バナーを配置
✤ /etc/motd
3. Nginx install
✤ yum install
✤ 自動起動有効
4. Deploy
✤ page upload (適当なhtml)
Hands On2(10min)
OpenSSLの脆弱性が報告され
た!利用中の全サーバの
OpenSSLのバージョンを確認し
よう。
✤ ansibleコマンド一発で確認す
ること
Hands On3(30min)
1. Swapfileを作成
✤ 512MBのswapfileを作成
✤ swaponでスワップ追加
✤ boot時に自動マウント
✤ ※冪等性は担保すること
2. 運用ツールを追加
✤ htop, glances, tmux
✤ ag (the-silver-searcher)
3. Deploy (from github)
✤ yteraoka/ansible-tutorial
✤ /var/www/ 以下にdeploy
✤ Nginx設定ファイル編集→restart

More Related Content

What's hot

Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
VirtualTech Japan Inc.
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
Manabu Ori
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201
Manabu Ori
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
 
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
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
VirtualTech Japan Inc.
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
Yuki Obara
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 

What's hot (20)

Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 

Viewers also liked

Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
Takahiro Kida
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
Masataka Tsukamoto
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
Shunsaku Kudo
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみました
Takeshi Kuramochi
 
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
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話
Shohei Koyama
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp
hiyohiyo
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ken Sawada
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれから
Taira Hajime
 
Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
正太 佐久本
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろう
Takayuki Hayashi
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
hiyohiyo
 
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
 
わかる!一眼
わかる!一眼わかる!一眼
わかる!一眼
Takahiro Nakayama
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
hiyohiyo
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube Channels
Emma Haruka Iwao
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
Amazon Web Services Japan
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Ryo Adachi
 

Viewers also liked (20)

Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみました
 
2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれから
 
Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろう
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
わかる!一眼
わかる!一眼わかる!一眼
わかる!一眼
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube Channels
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 

Similar to Ansible 入門 #01 (初心者向け)

ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
Yu Komiya
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
Hideki Saito
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
佐久本正太
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
yukihiro kawada
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
seiichi arai
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
 
OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書
VirtualTech Japan Inc.
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
matsuo kenji
 
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green DeploymentAWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
Kentaro NOMURA
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
junichi anno
 
当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組
Mercari Inc.
 

Similar to Ansible 入門 #01 (初心者向け) (20)

ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
 
OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green DeploymentAWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組
 

Recently uploaded

【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
Sony - Neural Network Libraries
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
chisatotakane
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
Toru Tamaki
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
ARISE analytics
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
Toru Tamaki
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
Ayachika Kitazaki
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
CRI Japan, Inc.
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo Lab
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
Natsutani Minoru
 

Recently uploaded (14)

【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
 

Ansible 入門 #01 (初心者向け)

  • 1. 2015.09.10 (Thu) Ansible 入門 #01 (初心者向け) CyberZ 廣瀬 太郎
  • 2. Ansible説明会 1. Ansibleとは 2. Ansibleの特徴 3. Ansibleの用語解説 ※この資料は以下のようなAnsible初心者を対象としています ✤ Ansibleを触ってみたい、導入したいと考えている方 ✤ サーバー構築とかやってる方 ✤ サーバーデプロイを効率化したい方 ✤ Chefは辛い方 ✤ Ansibleって響きが気になる方
  • 4. Ansibleとは “Ansible is Simple IT Automation” SIMPLE AGENTLESS POWERFUL Automate in hours - not weeks - with Ansible's human-readable IT automation language. Ansible uses SSH instead of agents. More efficient, more secure and less to manage. App deployment, configuration management and orchestration - all from one system. qt: http://www.ansible.com/home
  • 5. なぜやるの? 1) 構成管理 ✤ ドキュメントが古い ✤ 更新も面倒 ✤ Snapshot, AMIが秘伝のタレ化 ✤ 何が動いているのか分からない ✤ まっさらなOSから環境構築でき ない ✤ このサーバは「どうあるべき」なの か
  • 6. なぜやるの? 2) 自動化 ✤ 加速するビジネス ✤ 初動はできるだけ早く ✤ 付加価値増に集中したい ✤ 定常業務は低コストで ✤ アプリケーションデプロイ ✤ 脆弱性対応
  • 11. Ansibleの特徴 “Ansible is Simple IT Automation” SIMPLE AGENTLESS POWERFUL Automate in hours - not weeks - with Ansible's human-readable IT automation language. Ansible uses SSH instead of agents. More efficient, more secure and less to manage. App deployment, configuration management and orchestration - all from one system. qt: http://www.ansible.com/home
  • 12. Ansibleの特徴 “Ansible is Simple IT Automation” ✤ 定義はYAML( 設定ファイル) ✤ プログラムですら無いため学習障壁が少ない SIMPLE Automate in hours - not weeks - with Ansible's human-readable IT automation language. --- - hosts: webservers tasks: - name: yum install nginx yum: pkg=nginx state=installed
  • 13. Ansibleの特徴 “Ansible is Simple IT Automation” ✤ agentインストール不要 ✤ 運用管理サーバでansible*コマンドが使えればOK ✤ Pythonが入っていれば導入可能 ✤ 専用のserverやagentの運用管理不要 ✤ 常駐するプロセスはなし AGENTLESS Ansible uses SSH instead of agents. More efficient, more secure and less to manage.
  • 14. Ansibleの特徴 “Ansible is Simple IT Automation” ✤ 構成管理だけでなくOrchestrationとしても使えるので、 ちょっとした操作や調査の支援ツールにもなる ✤ 高機能だが、スモールスタートで始めることも可能 POWERFUL App deployment, configuration management and orchestration - all from one system. 柔軟な実行方法 ✤ 指定したタイミングで実行 ✤ 複数並列実行 ✤ 必要な処理だけをone-linerでadhocに実行 ✤ Push型だけでなくPull型もサポート (ansible-pull)
  • 15. Ansibleの特徴 “Ansible is Simple IT Automation” 冪等性 ✤ 記載したDSLの定義の状態に収束してくれる ✤ ある操作を何回行っても結果は同じ ✤ 変更がなければ処理をスキップする 以下がインストールされていること ・nginx ・java ・zabbix_agentd サービスが起動していること ・nginx ・zabbix_agentd
  • 17. 主なコマンド ✤ ansible ✤ Adhocに実行する ✤ ansible-playbook ✤ 作成した定義 (playbook) を実行する # コマンド実行例 $ ansible -m 'ping' webservers ansible-test02 | success >> { "changed": false, "ping": "pong" } # dry-run $ ansible-playbook hands-on00.yml --check --diff … PLAY RECAP ******************************************************************** ansible-test02 : ok=2 changed=0 unreachable=0 failed=0 # execute $ ansible-playbook hands-on00.yml … PLAY RECAP ******************************************************************** ansible-test02 : ok=2 changed=0 unreachable=0 failed=0
  • 18. Inventory Host Ansibleで管理するホストをini形式で記載する ✤ ホストのグルーピングが可能 # 例: example.com サイトをAnsibleで管理する mail.example.com [webservers] foo.example.com bar.example.com
  • 19. Playbook 実行する処理の内容をYAML形式で記載する ✤ 最初はplaybookとinventry hostさえあればOK --- - hosts: webservers tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=templates/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running (and enable it at boot) service: name=httpd state=started enabled=yes handlers: - name: restart apache service: name=httpd state=restarted
  • 20. Task (Tasks lists) 具体的な処理を、実行する順に配列で記載する ✤ 基本は name と module のセットを記載する ✤ 実行条件やトリガー (notify/handler) を加えることも可能 ✤ 実行条件: [when, changed_when, ignore_errors, always_runなど] ✤ トリガー: handlers で記載した処理の名前をnotifyで指定 --- - hosts: webservers tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=templates/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running (and enable it at boot) service: name=httpd state=started enabled=yes handlers: - name: restart apache service: name=httpd state=restarted
  • 21. Module Tasksで指定した処理を実行する汎用ライブラリ ✤ Modules are “idempotent” (冪等性) ✤ Core Modulesだけでも必要な作業は大体カバーできる --- - hosts: webservers tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=templates/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running (and enable it at boot) service: name=httpd state=started enabled=yes handlers: - name: restart apache service: name=httpd state=restarted
  • 22. 代表的なModule ✤ yum / apt : パッケージ管理 (インストール, 削除など) ✤ service : サービス操作 (起動, 停止, 再起動など) ✤ file : ファイル操作 (作成, 削除, 属性変更など) ✤ copy : ファイルをコピー ✤ template : ファイルを雛形としてファイル生成 (後述) ✤ shell : 任意のshellコマンドを実行(※冪等性は自分で担保) ✤ 具体的な操作の他、“register” を併用して条件分岐に利用する等の使い方もある 公式ドキュメントにModuleの一覧と説明があるので、詳しくは以下を参照ください。 http://docs.ansible.com/ansible/modules_by_category.html
  • 23. 共通化 (Include / Role) ✤ Include: ✤ tasksやhanderls等を別ファイルとして切り出し、一つのRole としてまとめておくことで再利用しやすくする --- - hosts: webservers tasks: - include: apache.yml - include: deploy.yml site=service_A - include: deploy.yml site=service_B
  • 24. 共通化 (Include / Role) ✤ Role: ✤ task, vars, files, templates, handlers一式を共通化 ✤ playbookからは roles 一発で呼び出しできる ✤ 複数サーバに適用する、汎化させるなどの用途で活用 # playbook --- - hosts: webservers roles: - common - webserver # ディレクトリ構成 hosts webservers.yml roles/ common/ files/ templates/ tasks/ handlers/ vars/ defaults/ meta/ webservers/ …
  • 25. 共通化 (Template / Variable) ✤ Template: ✤ 変数をbindして配布できる ✤ ホスト毎に異なるようなファイルを配布するときに活用 ✤ 書式は “Jinja2” # files/etc/motd.j2 ################################################## !!! Production server {{ ansible_hostname }} !!! ################################################## __| __|_ ) _| ( / Amazon Linux AMI ___|___|___| https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/
  • 26. 共通化 (Template / Variable) ✤ Variable: ✤ 条件分岐やTemplateで利用する変数を定義し呼出可能 ✤ 書式はYAML ✤ playbook, inventry host, varsなど様々な箇所で指定可能 ✤ OS層の下回りの情報はansibleが自動で取得し呼出可能 (Facts) ✤ 利用可能な変数は `ansible hostname -m setup` で確認可能 ✤ Chefで言う ohai # Variables innodb_buffer_pool_size: 6144M innodb_log_file_size: 2048M max_connections: 1000 … $ ansible ansible-test02 -m 'setup' ansible-test02 | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "172.31.xx.xx" ], "ansible_all_ipv6_addresses": [], "ansible_architecture": "x86_64", "ansible_bios_date": "NA", "ansible_bios_version": "NA", "ansible_cmdline": { "KEYTABLE": "us", "LANG": "ja-JP.UTF-8",
  • 28. Installation 1. サーバログイン 1. サーバ (Ansible: 1, Target: 1) へのSSH接続 ✤ 接続情報は個別にお渡しします 2. Ansible実行用の 作成と配布 1. Ansibleサーバ上で`ssh-keygen` で作成 (パスフレーズなし) 2. ec2-user@target:/home/ec2-user/.ssh/authorized_keys に 公開 (id_rsa.pub) をcopy 3. Ansibleサーバの /etc/hosts に Targetサーバを PrivateIP で記載 ( `sudo vim /etc/hosts` ) 4. Ansible → Target へのssh接続確認 3. Ansibleインストール 1. `sudo pip install ansible` 2. `sudo mkdir /etc/ansible && sudo chown ec2-user:ec2-user /etc/ansible && cd /etc/ ansible` 3. `touch hosts` 4. `wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg `
  • 29. Ansible手始め 1. Inventory Hostを記載 2. Ansibleコマンドを試し打ち ✤ `ansible TARGET -m 'ping'` ✤ `ansible TARGET -m 'setup'` # /etc/ansible/hosts [webservers] ansible-target0x
  • 31. BestPractice Best Practices Directory Layout - Ansible Documentation production # Inventory Hostはグループごとに作成 staging # 〃 group_vars/ # グループ用の変数の格納場所 group1 # group2 # host_vars/ # ホスト用の変数の格納場所 hostname1 # hostname2 # library/ # 自作Moduleの格納場所 (optional) filter_plugins/ # 自作Filter Pluginの格納場所 (optional) site.yml # master Playbook webservers.yml # Playbook dbservers.yml # Playbook roles/ # ロール (Role) の格納場所 common/ # “common” ロール tasks/ # Taskの格納場所 main.yml # <-- Taskがもし多くなる場合は小さく分ける handlers/ # Handlerの格納場所 main.yml # <-- 〃 templates/ # Templateの格納場所 ntp.conf.j2 # <------- Templateファイル名は *.j2 files/ # Fileの格納場所 bar.txt # foo.sh # vars/ # Varsの格納場所 main.yml # defaults/ # main.yml # Varsのデフォ値 (group/host_varsで上書き可) meta/ # ロールの依存関係があれば定義
  • 32. Hands On1(20min) 1. 運用ツールをインストール ✤ telnet, wget, rsync, tree, tcpdump, sysstat, dstat, vim-enhanced, git, htop 2. バナーを配置 ✤ /etc/motd 3. Nginx install ✤ yum install ✤ 自動起動有効 4. Deploy ✤ page upload (適当なhtml)
  • 34. Hands On3(30min) 1. Swapfileを作成 ✤ 512MBのswapfileを作成 ✤ swaponでスワップ追加 ✤ boot時に自動マウント ✤ ※冪等性は担保すること 2. 運用ツールを追加 ✤ htop, glances, tmux ✤ ag (the-silver-searcher) 3. Deploy (from github) ✤ yteraoka/ansible-tutorial ✤ /var/www/ 以下にdeploy ✤ Nginx設定ファイル編集→restart