第1回 一撃サーバー構築シェルスクリプト勉強会
Upcoming SlideShare
Loading in...5
×
 

第1回 一撃サーバー構築シェルスクリプト勉強会

on

  • 943 views

2014/09/06 開催の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。

2014/09/06 開催の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。

Statistics

Views

Total Views
943
Views on SlideShare
558
Embed Views
385

Actions

Likes
4
Downloads
19
Comments
0

2 Embeds 385

http://nullpopopo.blogcube.info 367
https://twitter.com 18

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

第1回 一撃サーバー構築シェルスクリプト勉強会 第1回 一撃サーバー構築シェルスクリプト勉強会 Presentation Transcript

  • 第1回 一撃サーバー構築シェルスクリプト勉強会 USP友の会 @nullpopopo
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 [自己紹介] 名前: 濱田康貴 ( @nullpopopo ) USP友の会 http://www.usptomo.com/ Blog http://nullpopopo.blogcube.info/ Facebook https://www.facebook.com/nullpopopo 著書: USP Magazine 教えて先輩♡サーバー運用お助けTIPS 隔月連載中
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ちょっとお知らせ
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 今日は危険じゃありません
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 最初に宣伝
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 第13回危険でない方のシェル芸勉強会&第31回安 全だと声高に叫ぶと逆にどうなのかUSP友の会定 例会 http://usptomo.doorkeeper.jp/events/15021
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 USP友の会で シェル芸以外の勉強会は 2012/06/24 以来。 ※ ちなみにシェル芸勉強会は 2012/10/27より開始
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 本当に地獄でした。。。 (;´Д`)
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 その前は?
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 2012/3/31 Apacheスタートスクリプト読書会 2012/2/19 やわらかマッドサイエンティスツの プログラミング入門
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ( ´-`)。oO( 喋り方忘れた・・・ )
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 本日のおしながき ●席替え、全体説明 ●変数設定、アップデート ● fail2ban、iptables設定 ●パッケージインストール ●MySQL設定 ● PHP設定 ●WordPress インストール ● nginx設定 ●再起動 ● LTタイム
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 席替え
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 3名1組でチームを作ります。 受付で番号のついた付箋紙を受け取られた方は、 その番号の指定席へ移動願います。 座席に付箋紙を持った方がいない場合は、無地の 付箋紙を受け取られた方と座席交換してくださ い。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 全体説明
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 一撃サーバー構築シェルスクリプト (一撃スクリ プト) 勉強会が目指すもの
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ●一度の実行でサーバー構築の全工程を終わらせ るスクリプトを作成できるようになる ●管理のための環境構築が不要で、さくらのクラ ウド スタートアップスクリプトと親和性が高い ことを体験する
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 スタートアップスクリプト とは
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 サーバ作成時にアプリケーションのインストールやサーバ設定を 自動的に行う「スタートアップスクリプト」 サーバを作成する際に、任意のシェルスクリプトを記述した「ス タートアップスクリプト」を選択することにより、 起動時にそれ らを自動的に実行できます。この機能によりあらかじめ必要なア プリケーションをインストールや、 サーバ設定の自動化も行えま す。 ※スタートアップスクリプト機能は現在、CentOS、ScientificLinux環境のみで動作します。 ※ http://cloud.sakura.ad.jp/feature.php より引用
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 スタートアップスクリプト内で使用できる 特殊タグ
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 @sacloud-once シェルスクリプト中のコメントに以下のように記述すると、OS起 動時に1回だけ(OSインストール後初回起動時のみ)実行されます。 記述例 # @sacloud-once これにより、yumコマンドによるアップデートやrebootコマンドに よる再起動(kernelやglibcアップデート後の反映)をスタートアップ スクリプト内にて行うことができます。 ※ @sacloud-once の記述を忘れてrebootコマンドをスタートアップスクリプトで実行すると、起動 →再起動→再起動→(以下エンドレス)という地獄を味わってしまいます。。。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 @sacloud-desc 以下のように、1行コメントをつけることができます。 # @sacloud-desc これはコメントです @sacloud-desc-begin / @sacloud-desc-end 以下のように、複数行のコメントをつけることができます。 # @sacloud-desc-begin # このように # 複数行のコメントをつけることができます。 # @sacloud-desc-end
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 コーディングルール
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 [コーディングルール(非機能要件)] ● rootユーザーでOSインストール直後に1回のみ実 行されるものとする ●外部シェルスクリプトの作成、呼び出しは原則 不可。ただし、一撃スクリプト内で生成して別 ファイルに出力し、一撃スクリプトから呼び出 すことができれば可能。 ●対話式コマンドはできるだけ避ける
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 その他 ●そもそも一撃ですべてを終わらせるのと、OSイ ンストール直後の環境は原則として同一なた め、ifの条件分岐などはあまり考慮しなくてよい です ●同様に、再実行を考慮したスクリプト設計は不 要です
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 機能要件 ● http://IPアドレス/ でWordPressのインストール 画面が表示されること ●WordPressインストール後、パーマリンク設定 を変更しても表示に問題がないこと
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 非機能要件 ●WEBサーバは nginx + PHP-FPMとし、nginx は mainline からインストールする ● PHPは5.5または5.6をインストールする (php-cli php-common php-mbstring php-pdo php-xml php-mysqlnd php-pecl-apcu php-xmlrpc php-opcache php-fpm)
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 非機能要件 ●MySQL Serverは標準リポジトリからインストー ルする ●MySQLのrootパスワード、WordPress接続用 ユーザのパスワードは自動生成する ●mysql_secure_installation と同等の処理を行う
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 変数設定 アップデート
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 #!/bin/bash # @sacloud-once DBNAME=wordpress DBUSER=wpuser ETH0=$(ip a show eth0 | grep inet | grep -v inet6 | awk '{print $2}' | sed -e "s//[0-9]*//") HOME=/root export HOME USER=root export USER ################################################################################ # Section1 yum update yum -y update ################################################################################
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 fail2ban、iptables設定
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 fail2ban設定内容 メール宛先と送信元のドメインが example.com なので、これを localhost に変更する
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 iptables設定内容 ● 受信パケットは一旦破棄する ● 送信パケットはすべて許可する ● パケット転送は許可しない ● localhostからのアクセスをすべて許可する ● 内部から行ったアクセスに対する外部からの返答アクセスを許可 する ● 外部からのTCP22番ポート(SSH)へのアクセスを許可する ● 外部からのTCP80番ポート(HTTP)へのアクセスを許可する
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 パッケージインストール
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 [nginx] ●リポジトリ取得 ●mainlineからインストールするよう nginx.repo を変更する ● nginxインストール
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 nginxのバージョンは3種類 http://nginx.org/en/download.html
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 [PHP] ● remi-release-6リポジトリ取得 ● php-cli php-common php-mbstring php-pdo php-xml php-mysqlnd php-pecl-apcu php-xmlrpc php-opcache php-fpm インストール
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 PHPの歩み http://www.slideshare.net/hirokawa/php-con2013ub より
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 http://sourceforge.jp/magazine/14/08/30/084800
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 [MySQL] ●標準リポジトリより mysql-server をインストー ル
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 Let's Coding
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 MySQL設定
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ポイント ● rootユーザのパスワードはランダムに生成したい(固定値にし ちゃうと、漏れたときのリスクが同じスクリプトを使って作った サーバすべてに及ぶ) ● WordPress接続用のユーザーも、同様にパスワードをランダムに 生成する ● mysqlコマンドに-eオプション
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ● mysqldを起動し、スタートアップに登録する ● MySQLのrootユーザとパスワードを作成し、パラメーターファ イルに格納する。書式は user root <Password> ● WordPressのDBに関してパラメーターファイルに格納する。書 式は DBPARAM DB名 DBユーザー名 <Password> ● MySQLのrootユーザーのパスワードを設定する。 ● WordPressのデータベースを作成する。 ● DBユーザー(WordPressデータベース接続用)のパスワードを変数 PWに格納する。 ● DBユーザーを作成する。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ● mysql_secure_installation 代替コマンド実行 ● 匿名ユーザーの削除 ● localhost以外からのrootログイン禁止 ● testデータベース削除 なぜmysql_secure_installationを使わないのか? → 対話式のコマンドなので、入力待ちで止まってしまうため ● 権限情報の再読込
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 パラメータファイル ${HOME}/.mysql/MySQLPARAM
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 PHP設定
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 やること ● php.iniのタイムゾーン設定 → 余計なログを出したくないので、東京に合わせておく。 ● php-fpmの実行ユーザー設定 → apacheからnginxへ変更する。 ● php-fpmを起動し、スタートアップ登録する
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 Let's Coding
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 WordPress インストール
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ● ドキュメントルートは /var/www/IPアドレス ● githubからWordPressダウンローダーを取得する https://raw.githubusercontent.com/nullpopopo/wpdl/master/bin/wpdl ● WordPress ( latest-ja.tar.gz ) は ${HOME}/src/wordpress/current/ に保存される ● wp-config-sample.php から wp-config.php をコピーし、DB名、 DBのユーザー名、パスワードを設定し、「put your unique phrase here」を32文字のランダムな文字列に置換する ● ドキュメントルートのユーザー・グループは nginx:root とする
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 nginx設定
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 参考URL http://wpdocs.sourceforge.jp/Nginx http://wiki.nginx.org/HttpCoreModule
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 ● /etc/nginx/nginx.conf を直接弄るのは worker_processesの数をコア数に合わせるくら いで、他は弄らない。 ● /etc/nginx/conf.d/000_VHOST.conf にヒアドキュ メントで設定を流し込む。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 # This order might seem weird - this is attempted to match last if rules below fail. # http://wiki.nginx.org/HttpCoreModuleJa#try_files location / { try_files $uri $uri/ /index.php?$args; index index.php index.html index.htm; } ファイルの存在を順に確認し、最初に確認できたファイルを返却します。$uri /のように末尾にス ラッシュのついたパスはディレクトリを示します。ファイルが確認できなかった場合は、末尾に指 定したパラメータに対して内部リダイレクトが行われます。末尾のパラメータはフォールバック用 の URI で、必ず 存在している必要があります。存在していない場合は内部エラーが発生します。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; リクエストURIが http://IPアドレス/wp-admin だったら、末尾にス ラッシュをつけたURIにリライトする。
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 Let's Coding
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会
  • 第1回 一撃サーバー構築シェルスクリプト勉強会 お疲れ様でした!