【eLV勉強会】 ITアーキテクトへの第一歩シリーズ ~Moving Motivatorsでチームのモティベーションを見える化する!!~
2014 06-27...
-
Upload
humangas -
Category
Technology
-
view
600 -
download
1
Transcript of 2014 06-27...
Chefと見せかけてANSIBLEな話
チーム内勉強会:ざっくり理解シリーズ
2014/06/27@humangas_
タイトルでオチが述べられていますが…
✓ Chef よりも ANSIBLE が気に入ってしまった話です。
✓ 何なのっ?て人向けなので、内容は極薄です。✓ ざっくりイメージを掴んで、「あぁ、いいかも。触っ
てみようかな。」(ChefでもANSIBLEでも)と思ってもらうのがゴールなので、語弊を恐れず強引に細かいところは敢えて落としてます。
Chef?
✓ サーバ自動構築ツール❏ (ホントは違うが今はこの理解で)
✓ いるもの❏ Ruby❏ 構築する側:Chef❏ 構築される側:Chef
✓ やりかた❏ レシピという名のサーバ構築手順書を書く❏ 構築する側からされる側をクック(料理)する❏ クックブック(=レシピを束ねたもの)単位でも可
http://www.getchef.com/chef/
絵で頼む:構成は2種類ある
Chef Server Chef Solo
$ kinf
e solo
cook
いきなりド
ンっ!
いいから、レシピを見せろ
# 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
インフラをコードで書く
なぜ、必要?
答え✓ 手で作るのは、面倒くさいから。✓ 手で作るのは、危ないから。✓ 手で作るのは、人と時間が必要だから。
WASURENAIDE: 冪等性 べきとうせい
=何回やっても同じ結果になること
✓ サーバ自動構築ツール❏ (ホントは違うが今はこの理解で)
↓↓↓↓↓↓↓↓ コレが正しい表現 ↓↓↓↓↓↓↓↓
✓ サーバをあるべき姿に収束させるツール
→ 冪等性を意識してレシピを書く
でも、大丈夫なの?
✓ 枯れてるつってもいいと思う
勉強するなら…
✓ Chefと言えばやっぱりコレ
✓ あとコレ(Chef以外も)
お待たせです。ANSIBLE
✓ やれることは、Chefと同じ✓ いるもの
❏ Python❏ 構築する側:ANSIBLE❏ 構築される側:いらない
✓ やりかた❏ Playbookという名のサーバ構築手順書を書く❏ 構築する側からされる側にansible-playbookする❏ ansibleコマンドで単にコマンド打つことも可
いらない!
いらない
Chef vs ANSIBLE
ANSIBLEは・・・
✓ ホスト(構築する)側のみインスコ❏ SSHのみでやるからエージェントいらず→シンプル
✓ ドキュメントもシンプル❏ 覚えることが少ないので始めやすい。Chef多すぎ。
✓ Pythonは知らなくていい❏ YAMLで書く❏ → 設定ファイル感覚。ラーニングコスト低し❏ 自分でモジュール書ける&何言語(だいたい)でもおk
✓ 速い(並列実行)❏ 光より速く、瞬間的にコミュニケーションができるデバイスより
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
# 見たまんま
# 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
で、大丈夫なんですか?
http://www.ansible.com/home
✓ でしょう。
まとめ
✓ とにかく、構成管理ツールは積極的に使っていこう。そのほうが楽だし安全。
✓ Chefも素晴らしいですが、ANSIBLEだと環境作りがほぼ不要(sshdのみ)なので始められやすい。
✓ やっぱ、ANSIBLEのほうがシンプルなので覚えやすい。チームにも展開しやすい。
✓ ということで、勉強することにする。(To: 自分 頑張って使いこなせ)