Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yasutaka Hamada
1,855 views
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料です。
Internet
◦
Read more
7
Save
Share
Embed
Embed presentation
Download
Downloaded 20 times
1
/ 94
2
/ 94
3
/ 94
4
/ 94
5
/ 94
6
/ 94
7
/ 94
8
/ 94
9
/ 94
10
/ 94
11
/ 94
12
/ 94
13
/ 94
14
/ 94
15
/ 94
16
/ 94
17
/ 94
18
/ 94
19
/ 94
20
/ 94
21
/ 94
22
/ 94
23
/ 94
24
/ 94
25
/ 94
26
/ 94
27
/ 94
28
/ 94
29
/ 94
30
/ 94
31
/ 94
32
/ 94
33
/ 94
34
/ 94
35
/ 94
36
/ 94
37
/ 94
38
/ 94
39
/ 94
40
/ 94
41
/ 94
42
/ 94
43
/ 94
44
/ 94
45
/ 94
46
/ 94
47
/ 94
48
/ 94
49
/ 94
50
/ 94
51
/ 94
52
/ 94
53
/ 94
54
/ 94
55
/ 94
56
/ 94
57
/ 94
58
/ 94
59
/ 94
60
/ 94
61
/ 94
62
/ 94
63
/ 94
64
/ 94
65
/ 94
66
/ 94
67
/ 94
68
/ 94
69
/ 94
70
/ 94
71
/ 94
72
/ 94
73
/ 94
74
/ 94
75
/ 94
76
/ 94
77
/ 94
78
/ 94
79
/ 94
80
/ 94
81
/ 94
82
/ 94
83
/ 94
84
/ 94
85
/ 94
86
/ 94
87
/ 94
88
/ 94
89
/ 94
90
/ 94
91
/ 94
92
/ 94
93
/ 94
94
/ 94
More Related Content
PDF
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
by
Yasutaka Hamada
PDF
第1回 一撃サーバー構築シェルスクリプト勉強会
by
Yasutaka Hamada
PDF
第1回 一撃サーバー構築シェルスクリプト勉強会
by
Yasutaka Hamada
PPTX
Puppetのススメ
by
Gosuke Miyashita
ODP
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
by
Yasutaka Hamada
KEY
Fabricでサーバー管理をDRYにしよう
by
max747
PDF
ChefとPuppetの比較
by
Sugawara Genki
PDF
Ansible quickstart
by
Hideki Saito
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
by
Yasutaka Hamada
第1回 一撃サーバー構築シェルスクリプト勉強会
by
Yasutaka Hamada
第1回 一撃サーバー構築シェルスクリプト勉強会
by
Yasutaka Hamada
Puppetのススメ
by
Gosuke Miyashita
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
by
Yasutaka Hamada
Fabricでサーバー管理をDRYにしよう
by
max747
ChefとPuppetの比較
by
Sugawara Genki
Ansible quickstart
by
Hideki Saito
What's hot
PDF
2日間Fabricを触った俺が 色々解説してみる
by
airtoxin Ishii
PDF
ノンプログラマのためのウェブサーバ入門
by
Atsu Yamaga
PPTX
Zabbixを2分でインストール
by
真乙 九龍
PDF
ICHIGEKI-MT 2015/03/14
by
Yasutaka Hamada
PPTX
ネットワークエンジニアのための Puppet / Chef
by
npsg
PPTX
明日から始める Chef 入門 #bpstudy
by
Takeshi Komiya
PDF
今日から使い始めるChef
by
Masahiro NAKAYAMA
PDF
Fabric Essentials
by
Yoshinari Takaoka
PDF
Ansible 入門 #01 (初心者向け)
by
Taro Hirose
PDF
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
by
Masahiro NAKAYAMA
PPTX
Pythonユーザのための構成管理入門 #pyconapac
by
Takeshi Komiya
PPTX
PowerShell de Azure
by
Atsushi Kojima
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
by
CLARA, Inc.
PDF
Ansible handson ood2016
by
Hideki Saito
PPTX
initとプロセス再起動
by
Takashi Takizawa
PDF
Ansible入門
by
Daiki Hayakawa
PPTX
Ansible ではじめるインフラのコード化入門
by
Sho A
PDF
Hive undocumented feature
by
tamtam180
PDF
MySQL Casual Talks in Fukuoka vol.2
by
学 松崎
PDF
動画共有ツール
by
tamtam180
2日間Fabricを触った俺が 色々解説してみる
by
airtoxin Ishii
ノンプログラマのためのウェブサーバ入門
by
Atsu Yamaga
Zabbixを2分でインストール
by
真乙 九龍
ICHIGEKI-MT 2015/03/14
by
Yasutaka Hamada
ネットワークエンジニアのための Puppet / Chef
by
npsg
明日から始める Chef 入門 #bpstudy
by
Takeshi Komiya
今日から使い始めるChef
by
Masahiro NAKAYAMA
Fabric Essentials
by
Yoshinari Takaoka
Ansible 入門 #01 (初心者向け)
by
Taro Hirose
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
by
Masahiro NAKAYAMA
Pythonユーザのための構成管理入門 #pyconapac
by
Takeshi Komiya
PowerShell de Azure
by
Atsushi Kojima
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
by
CLARA, Inc.
Ansible handson ood2016
by
Hideki Saito
initとプロセス再起動
by
Takashi Takizawa
Ansible入門
by
Daiki Hayakawa
Ansible ではじめるインフラのコード化入門
by
Sho A
Hive undocumented feature
by
tamtam180
MySQL Casual Talks in Fukuoka vol.2
by
学 松崎
動画共有ツール
by
tamtam180
Viewers also liked
PDF
不健康極まりない現役エンジニア生活を送っていたぼくが余生モードになって健康についていろいろ考えてみた
by
Yasutaka Hamada
PDF
2012/03/31 Apacheスタートスクリプト読書会発表資料
by
Yasutaka Hamada
PDF
2015/06/27 sakuraclub LT @nullpopopo
by
Yasutaka Hamada
PPTX
20110211 nullpopopo diet
by
Yasutaka Hamada
PDF
20101211 #
by
Yasutaka Hamada
PDF
みんなそろそろ707やめようぜ (;´Д`)
by
Yasutaka Hamada
PPTX
はじめてのgithub
by
Yasutaka Hamada
PDF
dbts2013:MariaDB Galera Cluster 活用例
by
Jun Shimizu
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PDF
超高速WordPress
by
Kengyu Nakamura
PDF
MaxScaleを触ってみた
by
Fujishiro Takuya
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
不健康極まりない現役エンジニア生活を送っていたぼくが余生モードになって健康についていろいろ考えてみた
by
Yasutaka Hamada
2012/03/31 Apacheスタートスクリプト読書会発表資料
by
Yasutaka Hamada
2015/06/27 sakuraclub LT @nullpopopo
by
Yasutaka Hamada
20110211 nullpopopo diet
by
Yasutaka Hamada
20101211 #
by
Yasutaka Hamada
みんなそろそろ707やめようぜ (;´Д`)
by
Yasutaka Hamada
はじめてのgithub
by
Yasutaka Hamada
dbts2013:MariaDB Galera Cluster 活用例
by
Jun Shimizu
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
超高速WordPress
by
Kengyu Nakamura
MaxScaleを触ってみた
by
Fujishiro Takuya
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
Similar to 2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
PDF
Unix
by
Hiramatsu Ryosuke
KEY
CMS時代のバックアップノウハウを身につけよう!
by
Takashi Uemura
PDF
お手軽並列処理
by
博文 斉藤
PDF
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
KEY
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
by
Takashi Uemura
PDF
VPSへの一発WordPressインストールスクリプト
by
Masayuki Maekawa
PDF
NPCA夏合宿 2014 講義資料
by
Hiromu Yakura
PPTX
実用裏方 Perl 入門
by
keroyonn
PDF
コマンドラインでWord pressをインストール < WP-CLI の活用 >
by
Takehisa Ikeda
PPTX
Web dbの監視
by
ii012014
PPT
Debug Hacks Conference 2009
by
Hiro Yoshioka
PDF
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
by
タカシ キタジマ
PDF
Sakuravps
by
BREN
PDF
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
by
さくらインターネット株式会社
PPTX
はじめてのWebサーバ構築 さくらvps
by
Atsuhiro Takiguchi
PPTX
Windowsでも使えるシェル
by
Tetsuya Hasegawa
ODP
シェルスクリプトを極める
by
bsdhack
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
PPTX
Web_DBの監視
by
ii012014
PDF
講座Linux入門・サーバOSとしてのLinux
by
Tokai University
Unix
by
Hiramatsu Ryosuke
CMS時代のバックアップノウハウを身につけよう!
by
Takashi Uemura
お手軽並列処理
by
博文 斉藤
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
by
Takashi Uemura
VPSへの一発WordPressインストールスクリプト
by
Masayuki Maekawa
NPCA夏合宿 2014 講義資料
by
Hiromu Yakura
実用裏方 Perl 入門
by
keroyonn
コマンドラインでWord pressをインストール < WP-CLI の活用 >
by
Takehisa Ikeda
Web dbの監視
by
ii012014
Debug Hacks Conference 2009
by
Hiro Yoshioka
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
by
タカシ キタジマ
Sakuravps
by
BREN
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
by
さくらインターネット株式会社
はじめてのWebサーバ構築 さくらvps
by
Atsuhiro Takiguchi
Windowsでも使えるシェル
by
Tetsuya Hasegawa
シェルスクリプトを極める
by
bsdhack
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
Web_DBの監視
by
ii012014
講座Linux入門・サーバOSとしてのLinux
by
Tokai University
More from Yasutaka Hamada
PPTX
試験前に抑えておきたいRTX/vRX VPN接続
by
Yasutaka Hamada
PPTX
「いきなり{非機能要求グレード,PCIDSS}担当にさせられた!どうする!?」
by
Yasutaka Hamada
PDF
うっかりyum updateでコケちゃってもさくらのVPSならレスキューモードでデータ吸い出せるぜ
by
Yasutaka Hamada
PDF
ぬるぽぽ2019年アウトプットの振り返り
by
Yasutaka Hamada
PPTX
ヤマハで作るセキュアで逸般的なサテライトネットワーク
by
Yasutaka Hamada
PPTX
学びの掛け算 コアスキルになにかを掛けろ この先生きのこるための生存戦略 - Strategy -
by
Yasutaka Hamada
PPTX
2019 10-04 cross-party nullpopopo
by
Yasutaka Hamada
PPTX
ゆで太郎はいいぞ - コミュニケーションツールとしてのゆで太郎活用TIPS
by
Yasutaka Hamada
PPTX
ニフクラとヤマハルーターで作るセキュアなオフィス環境
by
Yasutaka Hamada
PPTX
ヤマハルーターとクラウドをVPNで繋いでDaaS環境を構築しよう
by
Yasutaka Hamada
PPTX
君はxDSLを体感したか? Yahoo! BB ADSL終了記念カキコ
by
Yasutaka Hamada
PPTX
@nullpopopo が考える、未来のプレゼン | 明日に向かって
by
Yasutaka Hamada
PPTX
ゆで太郎エヴァンジェリスト 濱田康貴
by
Yasutaka Hamada
PPTX
平成生まれにこそススメたい!さくらとヤマハのハイブリッド!
by
Yasutaka Hamada
PPTX
concrete5もシェルスクリプトで一撃ダウンロードしようず
by
Yasutaka Hamada
PDF
「なりたい自分」になろう - 自分探しエンジニアの生存戦略 - インフラエンジニアのためのキャリアセミナー2018 アンケート結果
by
Yasutaka Hamada
PPTX
「なりたい自分」になろう - 自分探しエンジニアの生存戦略 - インフラエンジニアのためのキャリアセミナー2018
by
Yasutaka Hamada
PPTX
NVRシリーズで始める はじめてのヤマハルーター Interop2018
by
Yasutaka Hamada
PPTX
スタートアップこそOffice365で業務効率化
by
Yasutaka Hamada
PPTX
2017/09/27 さくらの夕べ-さくらのvps ユーザーミートアップ LT
by
Yasutaka Hamada
試験前に抑えておきたいRTX/vRX VPN接続
by
Yasutaka Hamada
「いきなり{非機能要求グレード,PCIDSS}担当にさせられた!どうする!?」
by
Yasutaka Hamada
うっかりyum updateでコケちゃってもさくらのVPSならレスキューモードでデータ吸い出せるぜ
by
Yasutaka Hamada
ぬるぽぽ2019年アウトプットの振り返り
by
Yasutaka Hamada
ヤマハで作るセキュアで逸般的なサテライトネットワーク
by
Yasutaka Hamada
学びの掛け算 コアスキルになにかを掛けろ この先生きのこるための生存戦略 - Strategy -
by
Yasutaka Hamada
2019 10-04 cross-party nullpopopo
by
Yasutaka Hamada
ゆで太郎はいいぞ - コミュニケーションツールとしてのゆで太郎活用TIPS
by
Yasutaka Hamada
ニフクラとヤマハルーターで作るセキュアなオフィス環境
by
Yasutaka Hamada
ヤマハルーターとクラウドをVPNで繋いでDaaS環境を構築しよう
by
Yasutaka Hamada
君はxDSLを体感したか? Yahoo! BB ADSL終了記念カキコ
by
Yasutaka Hamada
@nullpopopo が考える、未来のプレゼン | 明日に向かって
by
Yasutaka Hamada
ゆで太郎エヴァンジェリスト 濱田康貴
by
Yasutaka Hamada
平成生まれにこそススメたい!さくらとヤマハのハイブリッド!
by
Yasutaka Hamada
concrete5もシェルスクリプトで一撃ダウンロードしようず
by
Yasutaka Hamada
「なりたい自分」になろう - 自分探しエンジニアの生存戦略 - インフラエンジニアのためのキャリアセミナー2018 アンケート結果
by
Yasutaka Hamada
「なりたい自分」になろう - 自分探しエンジニアの生存戦略 - インフラエンジニアのためのキャリアセミナー2018
by
Yasutaka Hamada
NVRシリーズで始める はじめてのヤマハルーター Interop2018
by
Yasutaka Hamada
スタートアップこそOffice365で業務効率化
by
Yasutaka Hamada
2017/09/27 さくらの夕べ-さくらのvps ユーザーミートアップ LT
by
Yasutaka Hamada
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
1.
第3回 一撃サーバー構築シェルスクリプト勉強会 USP友の会
@nullpopopo
2.
第3回 一撃サーバー構築シェルスクリプト勉強会 [自己紹介]
名前: 濱田康貴 ( @nullpopopo ) USP友の会 http://www.usptomo.com/ Blog http://nullpopopo.blogcube.info/ Facebook https://www.facebook.com/nullpopopo 著書: USP Magazine 教えて先輩♡サーバー運用お助けTIPS 隔月(偶数月号)連載中
3.
第3回 一撃サーバー構築シェルスクリプト勉強会 石狩に行ってきました
4.
第3回 一撃サーバー構築シェルスクリプト勉強会
5.
第3回 一撃サーバー構築シェルスクリプト勉強会 北海道観光、楽しんできました。
6.
第3回 一撃サーバー構築シェルスクリプト勉強会 北海道グルメを堪能しました。
7.
第3回 一撃サーバー構築シェルスクリプト勉強会 次回勉強会予告
12/13(土)〜12/14(日)、日本UNIXユーザー会と共催で シェルスクリプトワークショップ を開催します。 会場は鳥取環境大学 講義棟 1階 15教室で、懇親会には カニが出ます。 東京でもサテライト開催予定です。
8.
第3回 一撃サーバー構築シェルスクリプト勉強会 前回のおさらい
&& 今回の環境構築
9.
第3回 一撃サーバー構築シェルスクリプト勉強会 http://nullpopopo.blogcube.info/2014/09/ichigeki-kotaeall.html
ここからコピペして 環境構築します
10.
第3回 一撃サーバー構築シェルスクリプト勉強会
11.
第3回 一撃サーバー構築シェルスクリプト勉強会
12.
第3回 一撃サーバー構築シェルスクリプト勉強会
13.
第3回 一撃サーバー構築シェルスクリプト勉強会
14.
第3回 一撃サーバー構築シェルスクリプト勉強会
15.
第3回 一撃サーバー構築シェルスクリプト勉強会
16.
第3回 一撃サーバー構築シェルスクリプト勉強会
17.
第3回 一撃サーバー構築シェルスクリプト勉強会
18.
第3回 一撃サーバー構築シェルスクリプト勉強会
19.
第3回 一撃サーバー構築シェルスクリプト勉強会
20.
第3回 一撃サーバー構築シェルスクリプト勉強会
21.
第3回 一撃サーバー構築シェルスクリプト勉強会
22.
第3回 一撃サーバー構築シェルスクリプト勉強会
23.
第3回 一撃サーバー構築シェルスクリプト勉強会
24.
第3回 一撃サーバー構築シェルスクリプト勉強会
25.
第3回 一撃サーバー構築シェルスクリプト勉強会 このように、WordPressのインストール
画面が表示されればOKです。 けどまだWordPressのインストールは行 わないでください。後でお楽しみがあり ますので。
26.
第3回 一撃サーバー構築シェルスクリプト勉強会 中で何をしていたかというと・・・
1.yum update 2.fail2banのメール宛先と送信元をroot@localhostに変更 3.iptables設定 4.nginxインストール 5.phpインストール 6.mysqlインストール 7.mysqlパラメータ生成→mysql設定 8.php設定 9.WordPressインストール 10.nginx設定ファイル生成 11.OS再起動
27.
第3回 一撃サーバー構築シェルスクリプト勉強会 今回のテーマ
28.
第3回 一撃サーバー構築シェルスクリプト勉強会 どうせなら単一のホストだけではなくバーチャル
ホストも一撃サーバーで運用したい・・・という 声が聞こえてきたので、一撃スクリプト作っちゃ いました。
29.
第3回 一撃サーバー構築シェルスクリプト勉強会 http://nullpopopo.blogcube.info/2014/11/20141108_ichigeki_odai.html
30.
第3回 一撃サーバー構築シェルスクリプト勉強会 ●コマンドライン一発でWordPressがインストー
ルされたバーチャルホストを構築 ●勿論バーチャルホストの削除も可能 ●バーチャルホスト削除時にはコンテンツとDBを 自動バックアップ
31.
第3回 一撃サーバー構築シェルスクリプト勉強会 スクリプト起動
第1引数が create の場合 第1引数が delete の場合 第1引数が その他の場合 引数が6つでなければ、使い方を表示して異常終了する。 引数が6つであれば、関数CREATEを実行する。 引数が2つでなければ、使い方を表示して異常終了する。 引数が2つであれば、関数DELETEを実行する。 使い方を表示して異常終了する。
32.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com
33.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) バーチャルホスト名 # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com
34.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) ブログのタイトル # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com
35.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com ブログの ログインID
36.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com ブログの ログインパスワード
37.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト作成) # VHMAINTE create www.example.com "ぬるぽぽぽのブログ" nullpopopo BlogP@ssw0rd_is_here youremail@example.com メールアドレス
38.
第3回 一撃サーバー構築シェルスクリプト勉強会 使い方
(バーチャルホスト削除) # VHMAINTE delete www.example.com
39.
第3回 一撃サーバー構築シェルスクリプト勉強会 #!/bin/bash
変数設定、基本設定 バーチャルホスト作成時の処理をまとめた「CREATE」関数 バーチャルホスト削除時の処理をまとめた「DELETE」関数 第一引数によって処理を選択するCASE文
40.
第3回 一撃サーバー構築シェルスクリプト勉強会 変数設定、基本設定
41.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
cat bin/VHMAINTE | head #!/bin/bash set -e LANG=C FQDN=$2 BLOGTITLE=$3 AdminUsername=$4 AdminPassword=$5 AdminEmail=$6 バーチャルホスト作成時に引数として 指定する内容
42.
第3回 一撃サーバー構築シェルスクリプト勉強会 bashの引数
$0 実行時のコマンド名 $1〜$n シェルスクリプト実行時に渡す引数
43.
第3回 一撃サーバー構築シェルスクリプト勉強会 DROOT=/var/www/${FQDN}
ドキュメントルートのディレクトリ /var/www/www.example.com のように 引数に与えたFQDNがディレクトリ名となる。
44.
第3回 一撃サーバー構築シェルスクリプト勉強会 ETH0=$(ip
a show eth0 | grep inet | grep -v inet6 | awk '{print $2}' | sed -e "s//[0-9]*//") eth0のIPアドレスをipコマンドから取得
45.
第3回 一撃サーバー構築シェルスクリプト勉強会 PARAMFILE=${HOME}/.mysql/MySQLPARAM
MySQLのパラメータファイル名を変数に格納
46.
第3回 一撃サーバー構築シェルスクリプト勉強会 if
[ ! -x ${HOME}/bin/wp ]; then curl -o ${HOME}/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod 700 ${HOME}/bin/wp fi 一撃シリーズ今回の目玉!wp-cliのインストール! ※ 取得元ファイル: https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
47.
第3回 一撃サーバー構築シェルスクリプト勉強会 wp-cliとは?
WordPress本体のインストール、アップデートか らプラグインやテーマのインストールやアップ デートまでほぼすべての操作がコマンドラインか らできてしまう! _人人人人人人人人人_ > まさにシェル芸 <  ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
48.
第3回 一撃サーバー構築シェルスクリプト勉強会 http://wp-cli.org/
49.
第3回 一撃サーバー構築シェルスクリプト勉強会 バーチャルホスト作成時の処理をまとめた「CREATE」関数
50.
第3回 一撃サーバー構築シェルスクリプト勉強会 関数
CREATE でやっていること 1.DB名を作成する (wpdb0000〜) 2.DBユーザー名を作成する (user0000〜) 3.DBパラメータファイル作成 4.DB作成 5.DBユーザー作成 6.ドキュメントルート作成 7.WordPressインストール 8.nginx設定ファイル生成 9.nginx再起動
51.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
cat bin/VHMAINTE | head -n 51 | tail -n 31 CREATE(){ DBNAME=$(printf "wpdb%04dn" $(ls /var/www/ | egrep -v "(^html|gz$|^"${ETH0}")" | wc -l)) DBUSER=$(printf "user%04dn" $(ls /var/www/ | egrep -v "(^html|gz$|^"${ETH0}")" | wc -l)) (中略) } バーチャルホスト作成時の処理を 関数「CREATE」にまとめた
52.
第3回 一撃サーバー構築シェルスクリプト勉強会 DBNAME=$(printf
"wpdb%04dn" $(ls /var/www/ | egrep -v "(^html|gz$|^"${ETH0}")" | wc -l)) DBUSER=$(printf "user%04dn" $(ls /var/www/ | egrep -v "(^html|gz$|^"${ETH0}")" | wc -l)) DB名とDBユーザー名を連番で作成するため、 /var/www以下のディレクトリ(/var/www/IPア ドレス と /var/www/html、そしてバックアッ プファイルを除く)の数をもとに採番する
53.
第3回 一撃サーバー構築シェルスクリプト勉強会 if
[ 0 = $(grep ${FQDN} ${PARAMFILE} | wc -l) ]; then echo "DBPARAM ${DBNAME} ${DBUSER} $(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 8)" ${FQDN} ${BLOGTITLE} ${AdminUsername} ${AdminPassword} ${AdminEmail}>> $ {PARAMFILE} mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "create database ${DBNAME} character set utf8;" PW=$(grep ${FQDN} ${PARAMFILE} | awk '{print $4}') mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "GRANT ALL PRIVILEGES on ${DBNAME}.* to ${DBUSER}@localhost identified by "${PW}";" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "FLUSH PRIVILEGES;" fi もし引数に指定したFQDNがパラメータファイ ルになければ、引数の内容をパラメータファ イルに書き込み、パラメータファイルをもと にDB作成、ユーザー作成を行い、MySQLの権 限テーブルを再読み込みする。
54.
第3回 一撃サーバー構築シェルスクリプト勉強会 echo
"DBPARAM ${DBNAME} ${DBUSER} $(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 8)" ${FQDN} ${BLOGTITLE} ${AdminUsername} ${AdminPassword} ${AdminEmail}>> $ {PARAMFILE} パラメータファイルへの書き込み処理例: # VHMAINTE create www.example.com "ぽぽぽぽぽ" nullpopopo BlogP@ssw0rD yasutaka.hamada@gmail.com # cat ${HOME}/.mysql/MySQLPARAM | grep www.example.com DBPARAM wpdb0000 user0000 DB_PASSWORD www.example.com ぽぽぽぽぽ nullpopopo BlogP@ssw0rD yasutaka.hamada@gmail.com
55.
第3回 一撃サーバー構築シェルスクリプト勉強会 mysql
-u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "create database ${DBNAME} character set utf8;" 確認1 データベースが作成されているかの確認: # mysql -u root -p$(cat ${HOME}/.mysql/MySQLPARAM | grep ^user | awk '{print $NF}') -e 'show databases;' +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | wordpress | | wpdb0000 | +--------------------+
56.
第3回 一撃サーバー構築シェルスクリプト勉強会 mysql
-u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "create database ${DBNAME} character set utf8;" 確認2 データベースの文字コードが正しいことの確認: # mysql -u root -p$(cat ${HOME}/.mysql/MySQLPARAM | grep ^user | awk '{print $NF}') -e 'show create database wpdb0000;' +----------+-------------------------------------------------------------------+ | Database | Create Database | +----------+-------------------------------------------------------------------+ | wpdb0000 | CREATE DATABASE `wpdb0000` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+-------------------------------------------------------------------+
57.
第3回 一撃サーバー構築シェルスクリプト勉強会 変数
DROOT は /var/www/${FQDN} でしたね [ ! -d ${DROOT} ] && mkdir -p ${DROOT} wp core download --locale=ja --path=${DROOT} cd ${DROOT} wp core download でWordPressを公式サイトからダウンロードします。 引数に「--locale=ja」を加えることで、日本語版のWordPressをダウン ロードすることができます。「--path=<フルパス>」でインストール先 ディレクトリを指定できるので、ここではバーチャルホストのドキュメ ントルートを指定します。
58.
第3回 一撃サーバー構築シェルスクリプト勉強会 wp
core config --dbname=$(grep ${FQDN} ${PARAMFILE} | awk '{print $2}') --dbuser=$(grep ${FQDN} ${PARAMFILE} | awk '{print $3}') --dbpass=$(grep ${FQDN} ${PARAMFILE} | awk '{print $4}') wp core config コマンドで wp-config.php を生成する。 前ページでドキュメントルートに移動しているので、-- pathを指定せずにカレントディレクトリで作業する。
59.
第3回 一撃サーバー構築シェルスクリプト勉強会 wp
core config --dbname=$(grep ${FQDN} ${PARAMFILE} | awk '{print $2}') --dbuser=$(grep ${FQDN} ${PARAMFILE} | awk '{print $3}') --dbpass=$(grep ${FQDN} ${PARAMFILE} | awk '{print $4}') # cat ${HOME}/.mysql/MySQLPARAM | grep www.example.com DBPARAM wpdb0000 user0000 DB_PASSWORD www.example.com ぽぽぽぽぽ nullpopopo BlogP@ssw0rD yasutaka.hamada@gmail.com # cat ${HOME}/.mysql/MySQLPARAM | grep www.example.com | awk '{print $2}' wpdb0000 # cat ${HOME}/.mysql/MySQLPARAM | grep www.example.com | awk '{print $3}' user0000 # cat ${HOME}/.mysql/MySQLPARAM | grep www.example.com | awk '{print $4}' DB_PASSWORD
60.
第3回 一撃サーバー構築シェルスクリプト勉強会 wp
core install --url=${FQDN} --title=${BLOGTITLE} --admin_user=${AdminUsername} --admin_password=$ {AdminPassword} --admin_email=${AdminEmail} cd wp core install コマンドで WordPressをインストール (wp-config.phpの内容をDBに投入)する。ドキュメント ルートに移動済なので、--pathを指定せずにカレントディ レクトリで作業する。
61.
第3回 一撃サーバー構築シェルスクリプト勉強会 cp
-p /etc/nginx/conf.d/000_VHOST.conf /etc/nginx/conf.d/$ {FQDN}.conf IPアドレスでアクセスした時に表示する バーチャルホストのconfigファイルをも とに、新しく作成するバーチャルホスト のconfigファイルを生成(コピー)する。
62.
第3回 一撃サーバー構築シェルスクリプト勉強会 sed
-i s/${ETH0}/${FQDN}/g /etc/nginx/conf.d/${FQDN}.conf configファイル中のIPアドレスをバー チャルホスト名に置換する。
63.
第3回 一撃サーバー構築シェルスクリプト勉強会 sed
-i 's/^}$//g' /etc/nginx/conf.d/${FQDN}.conf ログの設定をserverディレクティブに追 記するため、一旦ディレクティブの閉じ カッコを削除する。
64.
第3回 一撃サーバー構築シェルスクリプト勉強会 echo
" access_log /var/log/nginx/${FQDN}_access.log main;" >> /etc/nginx/conf.d/${FQDN}.conf echo " error_log /var/log/nginx/${FQDN}_error.log warn;" >> /etc/nginx/conf.d/${FQDN}.conf echo "}" >> /etc/nginx/conf.d/${FQDN}.conf ログの設定をserverディレクティブに追 記し、一旦削除したディレクティブの閉 じカッコを追記する。
65.
第3回 一撃サーバー構築シェルスクリプト勉強会 service
nginx reload nginxの設定ファイルを再読み込みする。
66.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
diff /etc/nginx/conf.d/000_VHOST.conf /etc/nginx/conf.d/www.example.com.conf 2,3c2,3 < server_name 133.242.18.139; < root /var/www/133.242.18.139; --- > server_name www.example.com; > root /var/www/www.example.com; 29a30,32 > > access_log /var/log/nginx/www.example.com_access.log main; > error_log /var/log/nginx/www.example.com_error.log warn;
67.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
ls -l /var/log/nginx/ 合計 28 -rw-r----- 1 nginx adm 589 10月 23 04:12 2014 access.log -rw-r----- 1 nginx adm 973 10月 22 04:41 2014 access.log-20141021.gz -rw-r----- 1 nginx adm 737 10月 23 03:04 2014 access.log-20141022.gz -rw-r----- 1 nginx adm 4174 10月 22 23:54 2014 access.log-20141023 -rw-r----- 1 nginx adm 142 10月 23 03:20 2014 error.log -rw-r--r-- 1 nginx root 1713 10月 23 04:19 2014 www.example.com_access.log -rw-r--r-- 1 nginx root 0 10月 20 11:35 2014 www.example.com_error.log -rw-r--r-- 1 root root 0 10月 20 11:38 2014 www2.example.com_access.log -rw-r--r-- 1 root root 0 10月 20 11:38 2014 www2.example.com_error.log
68.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
cat /etc/logrotate.d/nginx /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
69.
第3回 一撃サーバー構築シェルスクリプト勉強会 休憩
70.
第3回 一撃サーバー構築シェルスクリプト勉強会 バーチャルホスト削除時の処理をまとめた「DELETE」関数
71.
第3回 一撃サーバー構築シェルスクリプト勉強会 関数
DELETE でやっていること 1.nginx設定ファイルをリネーム 2.nginx再起動 3.DBバックアップ 4.DB削除 5.DBユーザー削除 6.パラメータファイルから該当FQDNを削除
72.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
cat bin/VHMAINTE | head -n 73 | tail -n 21 DELETE(){ mv /etc/nginx/conf.d/${FQDN}.conf /etc/nginx/conf.d/${FQDN}.conf.DISABLED_$(date +%Y%m%d%H%M%S) service nginx reload (中略) } バーチャルホスト削除時の処理を 関数「DELETE」にまとめた
73.
第3回 一撃サーバー構築シェルスクリプト勉強会 nginxのバーチャルホスト設定ファイルをリネー
ムし、nginxを再読み込みする mv /etc/nginx/conf.d/${FQDN}.conf /etc/nginx/conf.d/$ {FQDN}.conf.DISABLED_$(date +%Y%m%d%H%M%S) service nginx reload 例) www.example.com.conf ↓ www.example.com.conf.DISABLED_20141020113617
74.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
grep include /etc/nginx/nginx.conf include /etc/nginx/mime.types; include /etc/nginx/conf.d/*.conf; /etc/nginx/conf.d ディレクトリ配下にあるファイル名の接尾 語を「.conf」からリネームしてnginxを再起動すれば設定 ファイルのincludeから外れる仕組みを利用する
75.
第3回 一撃サーバー構築シェルスクリプト勉強会 ドキュメントルートのディレクトリをtar.gz圧縮し、元のディレク
トリを削除する [ -d ${DROOT} ] && tar czf ${DROOT}_$(date +%Y%m%d).tar.gz $ {DROOT} && rm -fr ${DROOT} 例) /var/www/www.example.com ↓/ var/www/www.example.com_20141020.tar.gz
76.
第3回 一撃サーバー構築シェルスクリプト勉強会 DB名とDB接続ユーザーを変数に格納する
DBNAME=$(grep ${FQDN} ${PARAMFILE} | awk '{print $2}') DBUSER=$(grep ${FQDN} ${PARAMFILE} | awk '{print $3}') # grep www.example.com $ {HOME}/.mysql/MySQLPARAM | awk '{print $2,$3}' wpdb0000 user0000
77.
第3回 一撃サーバー構築シェルスクリプト勉強会 if
[ 1 = $(grep ${FQDN} ${PARAMFILE} | wc -l) ]; then mysqldump -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') ${DBNAME} > /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql gzip /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "drop database ${DBNAME};" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "DELETE FROM mysql.user WHERE user = '${DBUSER}';" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "FLUSH PRIVILEGES;" cp -p ${PARAMFILE} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) grep -v ${DBUSER} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) > ${PARAMFILE} fi
78.
第3回 一撃サーバー構築シェルスクリプト勉強会 if
[ 1 = $(grep ${FQDN} ${PARAMFILE} | wc -l) ]; then mysqldump -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') ${DBNAME} > /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql gzip /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "drop database ${DBNAME};" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "DELETE FROM mysql.user WHERE user = '${DBUSER}';" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "FLUSH PRIVILEGES;" cp -p ${PARAMFILE} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) grep -v ${DBUSER} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) > ${PARAMFILE} fi バーチャルホストのFQDNがパラメータファイルに 1行書かれていたら実行する
79.
第3回 一撃サーバー構築シェルスクリプト勉強会 mysqldump
-u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') ${DBNAME} > /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql gzip /var/www/${FQDN}_${DBNAME}_$(date +%Y%m%d).sql wpdb0000 データベースの中身が /var/www/www.example.com_wpdb0000_20141108.sql に 保存された後、gzip圧縮され /var/www/www.example.com_wpdb0000_20141108.sql.gz になる。
80.
第3回 一撃サーバー構築シェルスクリプト勉強会 mysql
-u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "drop database ${DBNAME};" wpdb0000 データベースを削除する
81.
第3回 一撃サーバー構築シェルスクリプト勉強会 mysql
-u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "DELETE FROM mysql.user WHERE user = '${DBUSER}';" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "FLUSH PRIVILEGES;" user0000 (変数DBUSERに格納されている) を mysql データベースから削除し、権限情報を再読み込みする。
82.
第3回 一撃サーバー構築シェルスクリプト勉強会 cp
-p ${PARAMFILE} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) grep -v ${DBUSER} ${PARAMFILE}.$(date +%Y%m%d%H%M%S) > ${PARAMFILE} パラメータファイルをバックアップし、削除対象のFQDN 以外をパラメータファイルに残す。
83.
第3回 一撃サーバー構築シェルスクリプト勉強会 第一引数によって処理を選択するCASE文
84.
第3回 一撃サーバー構築シェルスクリプト勉強会 #
cat bin/VHMAINTE | tail -n 14 case "$1" in [cC][rR][eE][aA][tT][eE]) [ ! $# = 6 ] && echo "USAGE: $(basename $0) create FQDN BLOGTITLE AdminUsername AdminPassword AdminEmail" && exit 1 CREATE ;; [dD][eE][lL][eE][tT][eE]) [ ! $# = 2 ] && echo "USAGE: $(basename $0) delete FQDN" && exit 1 DELETE ;; *) echo "USAGE: $(basename $0) <create|delete> FQDN BLOGTITLE AdminUsername AdminPassword AdminEmail" exit 1 ;; esac
85.
第3回 一撃サーバー構築シェルスクリプト勉強会 おまけ:
wp-cliによるWordPressシェル芸
86.
第3回 一撃サーバー構築シェルスクリプト勉強会 IPアドレスのバーチャルホストでWordPressを使えるようにする
# ETH0=$(ip a show eth0 | grep inet | grep -v inet6 | awk '{print $2}' | sed -e "s//[0-9]*//") ; wp core install --url=${ETH0} --title="WordPressでシェル芸" --admin_user=nullpopopo --admin_password=Bl0gP@ssw0rd --admin_email=yasutaka.hamada@gmail.com --path=/var/www/${ETH0} 実行後 Success: WordPress installed successfully. と表示されればOK
87.
第3回 一撃サーバー構築シェルスクリプト勉強会 IPアドレスのバーチャルホストでWordPressを使えるようにする
88.
第3回 一撃サーバー構築シェルスクリプト勉強会 IPアドレスのバーチャルホストでWordPressを使えるようにする
_人人人人人人人人人人人人人人人人人_ > コマンドラインでも確認したい! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
89.
第3回 一撃サーバー構築シェルスクリプト勉強会 IPアドレスのバーチャルホストでWordPressを使えるようにする
# wp post list --path=/var/www/<IPアドレス>/ +----+--------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+--------------+-------------+---------------------+-------------+ | 1 | Hello world! | hello-world | 2014-10-25 17:53:51 | publish | +----+--------------+-------------+---------------------+-------------+
90.
第3回 一撃サーバー構築シェルスクリプト勉強会 PostID
1のタイトルを変更してみる ※ 事前確認 # wp post get 1 --field=post_title --path=/var/www/<IPアドレス>/ Hello world! ※ タイトル変更 # wp post update 1 --post_title="(っ´∀`)っ ゃー" --path=/var/www/<IPアド レス>/ Success: Updated post 1. ※ 事後確認 # wp post get 1 --field=post_title --path=/var/www/<IPアドレス>/ (っ´∀`)っ ゃー
91.
第3回 一撃サーバー構築シェルスクリプト勉強会 PostID
1のタイトルを変更してみる
92.
第3回 一撃サーバー構築シェルスクリプト勉強会 コマンドラインから新しい記事を投稿してみる
※ いきなり公開状態でポスト名をUNIXタイムにし、ポストタイトル を「ぬるぽぽぽ」、本文を「(っ´∀`)っ ゃー」で投稿する # wp post create --post_status=publish --post_name=$(date +%s) –-post_title='ぬるぽぽぽ' --post_content='(っ´∀`)っ ゃー' -– path=/var/www/<IPアドレス>/ Success: Created post 4.
93.
第3回 一撃サーバー構築シェルスクリプト勉強会 コマンドラインから新しい記事を投稿してみる
94.
第3回 一撃サーバー構築シェルスクリプト勉強会 お疲れ様でした!
Download