2014 06-27...

15
Chefと見せかけて ANSIBLEな話 チーム内勉強会:ざっくり理解シリーズ 2014/06/27 @humangas_

Transcript of 2014 06-27...

Page 1: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

Chefと見せかけてANSIBLEな話

チーム内勉強会:ざっくり理解シリーズ

2014/06/27@humangas_

Page 2: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

タイトルでオチが述べられていますが…

✓ Chef よりも ANSIBLE が気に入ってしまった話です。

✓ 何なのっ?て人向けなので、内容は極薄です。✓ ざっくりイメージを掴んで、「あぁ、いいかも。触っ

てみようかな。」(ChefでもANSIBLEでも)と思ってもらうのがゴールなので、語弊を恐れず強引に細かいところは敢えて落としてます。

Page 3: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

Chef?

✓ サーバ自動構築ツール❏ (ホントは違うが今はこの理解で)

✓ いるもの❏ Ruby❏ 構築する側:Chef❏ 構築される側:Chef

✓ やりかた❏ レシピという名のサーバ構築手順書を書く❏ 構築する側からされる側をクック(料理)する❏ クックブック(=レシピを束ねたもの)単位でも可

Page 4: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

http://www.getchef.com/chef/

絵で頼む:構成は2種類ある

Chef Server Chef Solo

$ kinf

e solo

cook

いきなりド

ンっ!

Page 5: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

いいから、レシピを見せろ

# install php mysql-server httpd%w{php mysql-server httpd}.each do |p| package p do action :install endend

# service httpd start / chkconfig httpd onservice "httpd" do action [:start, :enable]end

# LAMPインスコLinux + Apache + MySQL + PHP

# Apache起動 & 起動時起動

Infrastructure as Code

インフラをコードで書く

Page 6: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

なぜ、必要?

答え✓ 手で作るのは、面倒くさいから。✓ 手で作るのは、危ないから。✓ 手で作るのは、人と時間が必要だから。

Page 7: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

WASURENAIDE: 冪等性 べきとうせい

=何回やっても同じ結果になること

✓ サーバ自動構築ツール❏ (ホントは違うが今はこの理解で)

↓↓↓↓↓↓↓↓ コレが正しい表現 ↓↓↓↓↓↓↓↓

✓ サーバをあるべき姿に収束させるツール

→ 冪等性を意識してレシピを書く

Page 8: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

でも、大丈夫なの?

✓ 枯れてるつってもいいと思う

Page 9: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

勉強するなら…

✓ Chefと言えばやっぱりコレ

✓ あとコレ(Chef以外も)

Page 10: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

お待たせです。ANSIBLE

✓ やれることは、Chefと同じ✓ いるもの

❏ Python❏ 構築する側:ANSIBLE❏ 構築される側:いらない

✓ やりかた❏ Playbookという名のサーバ構築手順書を書く❏ 構築する側からされる側にansible-playbookする❏ ansibleコマンドで単にコマンド打つことも可

いらない!

いらない

Page 11: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

Chef vs ANSIBLE

ANSIBLEは・・・

✓ ホスト(構築する)側のみインスコ❏ SSHのみでやるからエージェントいらず→シンプル

✓ ドキュメントもシンプル❏ 覚えることが少ないので始めやすい。Chef多すぎ。

✓ Pythonは知らなくていい❏ YAMLで書く❏ → 設定ファイル感覚。ラーニングコスト低し❏ 自分でモジュール書ける&何言語(だいたい)でもおk

✓ 速い(並列実行)❏ 光より速く、瞬間的にコミュニケーションができるデバイスより

Page 12: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

Playbook !Infrastructure as Code

インフラをコードで書く

tasks: # Apache install - name: install apache action: yum pkg=httpd state=installed

# PHP install - name: install php action: yum pkg=php state=installed

# MySQL install - name: install mysql yum: name=mysql-server state=present

# Apache start - name: start httpd service: name=httpd state=started enabled=yes

# 見たまんま

Page 13: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

# ansible all -m ping

127.0.0.1 | success >> { "changed": false, "ping": "pong"}

192.168.1.2 | success >> { "changed": false, "ping": "pong"}

ansible コマンドで ちょいとした運用も楽に

# ansible testserver -a "cat /etc/redhat-release"

192.168.1.2 | success | rc=0 >>Red Hat Enterprise Linux Server release 6.2 (Santiago)

# view hosts

[local]127.0.0.1[testserver]192.168.1.2

Page 14: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

で、大丈夫なんですか?

http://www.ansible.com/home

✓ でしょう。

Page 15: 2014 06-27 チーム内勉強会-ざっくり理解シリーズ-chefと見せかけてansibleな話

まとめ

✓ とにかく、構成管理ツールは積極的に使っていこう。そのほうが楽だし安全。

✓ Chefも素晴らしいですが、ANSIBLEだと環境作りがほぼ不要(sshdのみ)なので始められやすい。

✓ やっぱ、ANSIBLEのほうがシンプルなので覚えやすい。チームにも展開しやすい。

✓ ということで、勉強することにする。(To: 自分 頑張って使いこなせ)