rabbit-slide-niku-hideo-at-sapporo-chuork01 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e8bf108cdb5f445bed857c7700a126a5c174f1b7
4
+ data.tar.gz: 5cab003f79c64f2411ea7c816d1770feb85055e0
5
+ SHA512:
6
+ metadata.gz: 2403eff21a74bfd9d3baeb9944e1e8fbe9e7eefa5ccf4c347c5984749b8d30a309e5645f336d784908c5b65adae4bbef846ffa378dd066c1e717a6c4b2528b2b
7
+ data.tar.gz: 01d617f9a623425e05e712ef6770474ff4cc1ab2d72b2efa38c83cd716c3596061578bf739849d9f004183fc41208af9a6b52c301cc41ae2f4eefe3288121ffa
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ hideo-at-chuork01.md
data/2014yuni1st.jpg ADDED
Binary file
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # ひでお(仮)
2
+
3
+ 札幌市中央区Ruby会議01での発表資料
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-niku-hideo-at-sapporo-chuork01
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-niku-hideo-at-sapporo-chuork01.gem
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ Rabbit::Task::Slide.new do |task|
6
+ # task.spec.files += Dir.glob("doc/**/*.*")
7
+ # task.spec.files -= Dir.glob("private/**/*.*")
8
+ # task.spec.add_runtime_dependency("YOUR THEME")
9
+ end
data/config.yaml ADDED
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: hideo-at-sapporo-chuork01
3
+ base_name: hideo-at-sapporo-chuork01
4
+ tags:
5
+ - sapporo-chuork01
6
+ - devops
7
+ - botti
8
+ presentation_date:
9
+ version: 1.0.0
10
+ licenses: []
11
+ slideshare_id:
12
+ speaker_deck_id: hideo-at-sapporo-chuork01
13
+ ustream_id:
14
+ vimeo_id:
15
+ author:
16
+ markup_language: :markdown
17
+ name: niku
18
+ email: niku@niku.name
19
+ rubygems_user: niku
20
+ slideshare_user:
21
+ speaker_deck_user: niku
@@ -0,0 +1,331 @@
1
+ # ひでお(仮)
2
+
3
+ author
4
+ ヽ(´・肉・`)ノ
5
+
6
+ # こんにちは
7
+
8
+ - にくです
9
+ - コンサドーレ札幌が好きです
10
+
11
+ # コンサドーレホーム開幕戦情報
12
+
13
+ 3/9(日)13:00@札幌ドーム vs モンテディオ山形
14
+
15
+ ![](2014yuni1st.jpg){:width='400' height='400'}
16
+
17
+ # ひでおとは
18
+
19
+ - 「ひ」とり
20
+ - 「で」ぶ(Dev)
21
+ - 「お」ぷす(Ops)
22
+
23
+ # ひとりとは
24
+
25
+ - ひとりです
26
+ - 開発してもひとり
27
+ - 運用してもひとり
28
+
29
+ # DevOpsおさらい
30
+
31
+ - "Dev"elopment(開発)
32
+ - "Op"eration(運用)
33
+
34
+ を繋いだ言葉です
35
+
36
+ # DevOpsってなんなの
37
+
38
+ - 開発「(多少動かなくても)機能をのせていきたい」
39
+ - 運用「(多少機能が少なくても)ちゃんと動くようにしたい」
40
+
41
+ 開発と運用はあんまり相性がよくないようにみえる
42
+
43
+ # DevもOpsも向かう先は一緒だった
44
+
45
+ - 開発「(プロダクトをよりよくするため)(多少動かなくても)機能をのせていきたい」
46
+ - 運用「(プロダクトをよりよくするため)(多少機能が少なくても)ちゃんと動くようにしたい」
47
+
48
+ # プロダクトをよりよくする
49
+
50
+ - プロダクト全体の最適化
51
+ - 全体を良くするにはお互いを理解する
52
+
53
+ # DevOpsは壮大なストーリー
54
+
55
+ - 大きすぎて今回はうまく話せない
56
+
57
+ # ひでお
58
+
59
+ - ひとりで開発と運用やるのでお互いは理解できている
60
+ - プロダクトをよりよくするため
61
+ - 運用の圧縮
62
+ - 人が増えたときのノウハウの共有
63
+ - 記憶や手順書からの脱却
64
+
65
+ # ひでお(旅立ち編)
66
+
67
+ - CI環境作るためのツール
68
+ - VirtualBox
69
+ - Vagrant
70
+ - Packer
71
+ - Chef
72
+
73
+ # ケース
74
+
75
+ - ソースコードをGithubに置ける
76
+ - ソースコードをGithubに置けない
77
+
78
+ # ソースコードをGithubに置ける
79
+
80
+ - Github連携サービスを使おう
81
+ - Travis CI
82
+ - Circle CI
83
+ - サービスの面倒をみなくていい
84
+ - おすすめ
85
+
86
+ # ソースコードをGithubに置けない
87
+
88
+ - Jenkinsを使おう
89
+ - 面倒をみないといけない
90
+ - 運用の手間を減らすために運用対象を増やすの?
91
+
92
+ # 既にJenkinsが使える
93
+
94
+ - おめでとう!
95
+ - 使い倒そう
96
+
97
+ # サーバーあるけどJenkins入ってない
98
+
99
+ $ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
100
+ $ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
101
+ $ sudo apt-get update
102
+ $ sudo apt-get install jenkins
103
+
104
+ <https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins#InstallingJenkins-Unix%2FLinuxInstallation>
105
+
106
+ # サーバーがない
107
+
108
+ - 仮想環境に作ろう
109
+ - 実際のサーバー用意するより作ったり壊したりが簡単
110
+ - 必要なもの
111
+ - 自分のPC
112
+ - 仮想化ソフト
113
+ - インストールしたことある人に聞ける環境か調べる根性
114
+
115
+ # 仮想化ソフト
116
+
117
+ - インストーラーでインストールできる
118
+ - VirtualBox
119
+ - <https://www.virtualbox.org/>
120
+ - VMWare Fusion(Mac) / VMWare Player(Windows)
121
+ - <https://my.vmware.com/jp/>
122
+ - 個人的にはVirtualBoxを使ってる
123
+
124
+ # 仮想化環境を作ろう
125
+
126
+ - 仮想化ソフト=いらないPC (ハードウェア)
127
+ - 中身(OS)をインストールする
128
+
129
+ その後Jenkinsを入れる
130
+
131
+ # 仮想化環境でのCIできた
132
+
133
+ - 簡単にノウハウを配布したい
134
+ - 記憶や手順書からの脱却
135
+ - もっともっと
136
+
137
+ # Vagrant
138
+
139
+ - <http://www.vagrantup.com/>
140
+ - Vagrantfileに設定を書く
141
+ - あらかじめ仮想化してある環境(Box)の取得
142
+ - ↑の環境へ事前処理(Provision)を適用
143
+ - 仮想環境の起動/終了を簡単なコマンドから
144
+ - vagrant up (起動) / vagrant halt (終了)
145
+
146
+ # Vagrantのインストール
147
+
148
+ - <http://www.vagrantup.com/downloads.html>
149
+ - Windows/OSX/Debian/RHEL
150
+ - インストーラーで簡単にインストールできる
151
+
152
+ # Vagrantfile
153
+
154
+ VAGRANTFILE_API_VERSION = "2"
155
+
156
+ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
157
+ config.vm.box = "hideo"
158
+ config.vm.box_url = "http://files.vagrantup.com/precise64.box"
159
+ config.vm.network "forwarded_port", guest: 8080, host: 18080
160
+ config.vm.provision "shell", inline: <<__EOS__
161
+ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
162
+ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
163
+ sudo apt-get update
164
+ sudo apt-get install jenkins -y
165
+ __EOS__
166
+ end
167
+
168
+ # 帰ったらやってみよう
169
+
170
+ $ mkdir hideo
171
+ $ cd hideo
172
+ $ curl -o Vagrantfile https://gist.github.com/niku/8867832
173
+ $ vagrant up
174
+ # 処理が終わったら,ブラウザから http://localhost:18080/ にアクセスすると
175
+ # Jenkins が動いている
176
+ $ vagrant halt
177
+
178
+ # Vagrantでノウハウの配布できた
179
+
180
+ - けど
181
+ - 「誰か」があらかじめ作ってくれたBoxを使っている
182
+ - それエンタープライズでも同じこと言えんの?
183
+
184
+ # Vagrantの課題解消
185
+
186
+ - Boxも自分で作れるようになりたい
187
+ - <http://docs.vagrantup.com/v2/boxes/base.html>
188
+ - もっともっと
189
+
190
+ # Packer
191
+
192
+ - <http://www.packer.io/>
193
+ - Template(JSON)に設定を書く
194
+ - OSのインストールCD/DVDを取得
195
+ - OSの自動インストール
196
+ - 環境に処理を適用
197
+
198
+ # OSの自動インストール(Debian)
199
+
200
+ - Debian => preseed.cfg
201
+ - <http://www.debian.org/releases/wheezy/mipsel/apbs01.html.ja>
202
+
203
+ # OSの自動インストール(Red Hat Enterprise Linux)
204
+
205
+ - RHEL => kickstart
206
+ - <https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ch-kickstart2.html>
207
+
208
+ # OSの自動インストール(Windows)
209
+
210
+ - Windows => Autounattend.xml
211
+ - <http://technet.microsoft.com/ja-jp/library/cc749415%28v=ws.10%29.aspx>
212
+
213
+ # Packerのインストール
214
+
215
+ - <http://www.packer.io/docs/installation.html>
216
+ - ファイルを1つダウンロードしてパス通すだけ
217
+
218
+ # Packerのテンプレート
219
+
220
+ {
221
+ "builders": [{
222
+ "type": "virtualbox-iso",
223
+ "iso_checksum_type": "sha512",
224
+ "iso_checksum": "2ed8a7ec7ef3abe59b825f7c8d7176322b87341800277c70dce807c5c9ab1c8f18a9e677766d2a12df334024fe27580cf208a305afaf09e96cfe9e762e4f94df",
225
+ "iso_url": "http://cdimage.debian.org/debian-cd/7.3.0/amd64/iso-cd/debian-7.3.0-amd64-netinst.iso",
226
+ "ssh_username": "vagrant",
227
+ "ssh_password": "vagrant",
228
+ "http_directory": "./",
229
+ "boot_command": [
230
+ "<esc>",
231
+ "<wait>",
232
+ "install ",
233
+ "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
234
+ "debian-installer=en_US ",
235
+ "auto ",
236
+ "locale=en_US ",
237
+ "kbd-chooser/method=us ",
238
+ "netcfg/get_hostname={{ .Name }} ",
239
+ "netcfg/get_domain=vagrantup.com ",
240
+ "fb=false ",
241
+ "debconf/frontend=noninteractive ",
242
+ "console-setup/ask_detect=false ",
243
+ "console-keymaps-at/keymap=us ",
244
+ "keyboard-configuration/xkb-keymap=us ",
245
+ "<enter>"
246
+ ],
247
+ "shutdown_command": "sudo shutdown -h now",
248
+ "guest_os_type": "Debian_64"
249
+ }],
250
+ "provisioners": [{
251
+ "type": "shell",
252
+ "scripts": [
253
+ "base.sh",
254
+ "chef.sh",
255
+ "vagrant.sh"
256
+ ]
257
+ }],
258
+ "post-processors": [{
259
+ "type": "vagrant"
260
+ }]
261
+ }
262
+
263
+ # Packerのテンプレート作るのつらそう
264
+
265
+ - 「Packerを使ってVagrantのBoxを作る方法を一つずつ説明する」という良いコンテンツがある
266
+ - [packer vagrant] で検索
267
+
268
+ # 帰ったらやってみよう
269
+
270
+ $ git clone git@github.com:niku/my-packer-and-vagrant-example.git
271
+ $ cd my-packer-and-vagrant-example
272
+ $ packer build wheezy64.json
273
+
274
+ 処理が終わったらDebianベースでVagrantに取り込めるBoxができている
275
+
276
+ # Vagrantでやってたこと
277
+
278
+ - あらかじめ仮想化してある環境(Box)の取得
279
+ - ↑の環境へ事前処理(Provision)を適用
280
+
281
+ Boxの取得はできた
282
+
283
+ # サーバーへの処理をShellでやるとしんどいこと
284
+
285
+ - パッケージ化されていないものやソースから最新版を入れてメンテすること
286
+ - 設定ファイルの内容を書くこと
287
+ - 何回も動かしても大丈夫なようにすること
288
+ - 何回動かしても大丈夫にしておけば,毎回動かせる
289
+ - つまり動かしていいかの迷いがなくなる
290
+
291
+ # Chef(Chef Solo)
292
+
293
+ - <http://www.getchef.com/>
294
+ - サーバーが「こうあるべき」というのを書いておく
295
+ - 「こうじゃないところ」を「こう」にしてくれる
296
+ - 「こう」になっているところは変わらない
297
+
298
+ # 入門Chef Soloを読もう
299
+
300
+ - 全部書いてある
301
+ - <http://tatsu-zine.com/books/chef-solo>
302
+
303
+ # 帰ったらやってみよう
304
+
305
+ $ git clone git@github.com:niku/server-settings-with-chef-on-debian.git
306
+ $ cd server-settings-with-chef-on-debian
307
+ $ bundle install
308
+ $ mv data_bags/users/niku.json data_bags/users/{自分のid}.json
309
+ $ emacs data_bags/users/{自分のid}.json
310
+ # id を自分のidに変更する
311
+ # key を自分の公開鍵に変更する
312
+ $ vagrant init
313
+ $ vagrant up
314
+ $ vagrant ssh
315
+ # vagrantでsshログインできることを確認する
316
+ $ ssh 127.0.0.1 -p 2222
317
+ # 自分のidでログインできないことを確認する
318
+ $ bundle exec knife solo prepare 127.0.0.1 --ssh-user vagrant --ssh-password vagrant --ssh-port 2222
319
+ $ bundle exec knife solo cook 127.0.0.1 nodes/default.json --ssh-user vagrant --ssh-password vagrant --ssh-port 2222
320
+ # password "vagrant" を何回か打つ
321
+ $ ssh 127.0.0.1 -p 2222
322
+ # 自分のidでログインできるようになっている
323
+
324
+ # おれたちの活躍はこれからだ
325
+
326
+ - VirtualBox 仮想化ツール
327
+ - Vagrant 仮想環境をBoxとProvisionから構築するツール
328
+ - Packer Boxを作るツール
329
+ - Chef Provision
330
+
331
+ にく先生の次回作にご期待ください
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-niku-hideo-at-sapporo-chuork01
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - niku
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: |
28
+ 札幌市中央区Ruby会議01での発表資料
29
+
30
+ ## 作者向け
31
+
32
+ ### 表示
33
+
34
+ rake
35
+
36
+ ### 公開
37
+
38
+ rake publish
39
+
40
+ ## 閲覧者向け
41
+
42
+ ### インストール
43
+
44
+ gem install rabbit-slide-niku-hideo-at-sapporo-chuork01
45
+
46
+ ### 表示
47
+
48
+ rabbit rabbit-slide-niku-hideo-at-sapporo-chuork01.gem
49
+ email:
50
+ - niku@niku.name
51
+ executables: []
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - ".rabbit"
56
+ - 2014yuni1st.jpg
57
+ - README.md
58
+ - Rakefile
59
+ - config.yaml
60
+ - hideo-at-sapporo-chuork01.md
61
+ - pdf/hideo-at-sapporo-chuork01-hideo-at-sapporo-chuork01.pdf
62
+ homepage: http://slide.rabbit-shocker.org/authors/niku/hideo-at-sapporo-chuork01/
63
+ licenses: []
64
+ metadata: {}
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ requirements: []
80
+ rubyforge_project:
81
+ rubygems_version: 2.2.0
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: "# ひでお(仮)"
85
+ test_files: []