SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
「さくらのクラウド」 
スタートアップスクリプトを作ってみよう! 
- concrete5を題材に - 
さくらインターネット株式会社 
広報宣伝室 
林 雅也 
2014年8月23日 
※concrete5 は Concrete CMS, Inc および、コンクリートファイブジャパン株式会社の登録商標です 
(C)1996-2014 SAKURA Internet Inc.
2 
(C)1996-2014 SAKURA Internet Inc. 
当セッションの概要 
このセッションでは、さくらインターネット株式 
会社が提供するパブリッククラウドサービス「さ 
くらのクラウド」がもつ「スタートアップスクリ 
プト」という機能をご紹介させていただきます。 
また、オープンソースCMSである「concrete5」 
を題材に、既存のスクリプトを元に、オリジナル 
スクリプトを作成する方法について、ご説明させ 
ていただきます。
3 
(C)1996-2014 SAKURA Internet Inc. 
自己紹介 
• さくらインターネット株式会社 林 雅也 
– 2005年入社。社内インフラ担当など 
2014年4月より広報宣伝室 
– KOFやOSCに参加するようになり、少しずつオープ 
ンソースコミュニティに興味を持つようになる。 
– Twitter:@haya2_ 
– Facebook:https://www.facebook.com/haya4
4 
1996年からサービスを行う 
データセンター・ホスティングの老舗です 
(C)1996-2014 SAKURA Internet Inc. 
さくらインターネット 
1996年 京都府舞鶴市にて創業 
1998年 大阪市中央区へ移転 
1999年 株式会社化、東京支社開設 
大阪・東京へIDCを新設 
2005年 東証マザーズへ上場 
2011年 石狩IDCを新設 
商号 さくらインターネット株式会社 
本社所在地 大阪市中央区南本町一丁目8番14号 
設立年月日 
1999年8月17日 
(サービス開始は1996年12月23日) 
取締役 
代表取締役 社長 田中 邦裕 
取締役 副社長 舘野 正明 
取締役 川田 正貴 
取締役 村上 宗久 
取締役(非常勤)森田 勝也 
取締役(非常勤)辻 壮 
上場年月日 2005年10月12日(東証マザーズ) 
決算 3月末日 
資本金 8億9,530万円 
従業員数 236名 (2014年3月末)
5 
さくらのクラウドとは 
(C)1996-2014 SAKURA Internet Inc.
6 
さくらのクラウドのコンセプト 
• 所謂IaaS型のクラウドサービス 
– 何の変哲もないIaaS型クラウド 
– 物理サーバ、物理ネットワーク 
→ そのまま、まるごと仮想化 
(C)1996-2014 SAKURA Internet Inc.
7 
(C)1996-2014 SAKURA Internet Inc. 
たくさんのサーバを
8 
アップグレード・ダウングレードしたり 
(C)1996-2014 SAKURA Internet Inc.
9 
複製してスケールアウトしたり 
(C)1996-2014 SAKURA Internet Inc.
10 
転送量課金のない固定制の料金形態で 
(C)1996-2014 SAKURA Internet Inc. 
月額料金表
11 
時間割課金にも対応しています 
(C)1996-2014 SAKURA Internet Inc. 
時間割料金表
12 
ブラウザからサーバにアクセスでき 
(C)1996-2014 SAKURA Internet Inc.
13 
(C)1996-2014 SAKURA Internet Inc. 
OSの選択も可能で
14 
bootオプションの変更も可能で 
(C)1996-2014 SAKURA Internet Inc.
15 
シングルユーザモードにもできます 
(C)1996-2014 SAKURA Internet Inc.
16 
(C)1996-2014 SAKURA Internet Inc. 
fstabを変更したり
17 
panicが起きた後も確認できます 
(C)1996-2014 SAKURA Internet Inc.
18 
ネットワークも自由に組めます 
(C)1996-2014 SAKURA Internet Inc.
19 
(C)1996-2014 SAKURA Internet Inc. 
NICを追加して
20 
線を伸ばしてスイッチに接続もできます 
(C)1996-2014 SAKURA Internet Inc.
21 
物理データセンターとも接続できます 
ハイブリッド接続を利用すれば 
「さくらの専用サーバ」「リモートハウジング」と接続可能 
(C)1996-2014 SAKURA Internet Inc.
22 
さくらのVPSからワンタッチでコピーできます 
(C)1996-2014 SAKURA Internet Inc.
$ curl --user “APIKEY":“SECRET" https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/ 
Index":0,"ID":"112400226821","Name":"git¥u30b5¥u30fc¥u30d01","HostName":"localhost","Description":"","ServiceCla 
ss":"cloud¥/plan¥/1","CreatedAt":"2012-05-07T00:19:44+09:00“,"Icon":{"ID":"112500078923", 
"URL":"https:¥/¥/secure.sakura.ad.jp¥/cloud¥/zone¥/is1a¥/api¥/cloud¥/1.1¥/icon¥/112500078923.png","Name":"¥u30c 
d¥u30b3","Sc 
23 
$ curl --user “APIKEY":“SECRET" -H 'X-Sakura-API-Beautify:1' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/ 
"From": 0, 
(C)1996-2014 SAKURA Internet Inc. 
標準でAPIをサポート 
"Count": 29, 
"Total": 29, 
"Servers": [ 
REST形式でアクセス可能で、/server/ならサーバ一覧など、 
直観的なAPIアクセスを実現。 
{ 
"Index": 0, 
"ID": "112400226821", 
"Name": "git¥u30b5¥u30fc¥u30d01", 
"HostName": "localhost“,
24 
CLI “sacloud”も用意しています 
$ sudo ~/.nave/nave.sh usemain stable 
[sudo] password for tanaka: 
######################################################################## 100.0% 
installed from binary 
$ sudo npm install -g sacloud 
$ sacloud config --apiRoot="https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/" 
/home/tanaka/.sacloudcfg.json: 
{ 
"apiRoot": "https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/" 
} 
$ sacloud config --accessToken=APIKEY --accessTokenSecret=SECRET 
/home/tanaka/.sacloudcfg.json: 
{ 
"apiRoot": "https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/", 
"accessToken": “APIKEY", 
"accessTokenSecret": “SECRET" 
} 
$ sacloud show server 
GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server.json?{} -> 200 OK (1/1) ~1.539sec 
+--------------+--------------------+--------+---------------------+ 
| id | name | status | created at | 
+--------------+--------------------+--------+---------------------+ 
| 112400226821 | gitサーバ1 | up | 2012-05-07 00:19:44 | 
+--------------+--------------------+--------+---------------------+ 
| 112500271369 | www2 | up | 2013-06-20 00:27:33 | 
+--------------+--------------------+--------+---------------------+ 
| 112400258152 | rp1 | up | 2012-05-28 15:35:11 | 
(C)1996-2014 SAKURA Internet Inc.
25 
スタートアップスクリプト 
サーバ作成時に任意のシェルスクリプトを 
「スタートアップスクリプト」から選択しておけば 
サーバ起動時に実行させることができます。 
(C)1996-2014 SAKURA Internet Inc.
26 
(C)1996-2014 SAKURA Internet Inc. 
パブリックスクリプト
27 
自作スタートアップスクリプトも作れます 
(C)1996-2014 SAKURA Internet Inc.
28 
スタートアップスクリプト 
の仕組み 
(C)1996-2014 SAKURA Internet Inc.
※スタートアップスクリプト機能は現在、CentOS、 
ScientificLinux、Ubuntu、 Debian GNU/Linux 
環境で動作いたします。 
29 
スタートアップスクリプトとは 
スタートアップスクリプトは、新たにサーバを作 
成する際、任意のシェルスクリプトを記述した 
「スタートアップスクリプト」を選択することに 
より、起動時にそれらを自動的に実行する機能で 
す。 
(C)1996-2014 SAKURA Internet Inc. 
※2014年9月2日訂正
サーバ作成画面でスタートアップスクリプトを選択すると、起動 
後のサーバ内で以下の動作が行われます。 
1. 起動時、/etc/rc.localが/root/.sacloud-api/startup.shを実行 
2. startup.shが、「スタートアップスクリプト」で指定したスク 
リプト(“/root/.sacloud-api/notes/スタートアップスクリプト 
ID“に配置)を実行 
と、”/root/.sacloud-api/notes/スタートアップスクリプト 
ID.done”という名前の空ファイルを作成(このファイルが存在 
すると@sacloud-once を指定したスクリプトは実行されない) 
30 
スタートアップスクリプトの動作 
3. スクリプトが実行され、ログが”/root/.sacloud-api/notes/ス 
タートアップスクリプトID.log”に出力される 
4. 各スクリプトが正しく(終了コードが”0″)終了する 
(C)1996-2014 SAKURA Internet Inc.
31 
スタートアップスクリプトの例 
– WordPress - 
(C)1996-2014 SAKURA Internet Inc.
32 
このスタートアップスクリプトの基本構成 
1. 説明 
2. iptablesの設定 
3. Apache、MySQL、PHPのインストール 
4. WordPressのインストール 
(C)1996-2014 SAKURA Internet Inc.
33 
WordPressのスタートアップスクリプト-1 
1回だけ 
実行する 
(C)1996-2014 SAKURA Internet Inc. 
#!/bin/bash 
# @sacloud-once 
# @sacloud-desc WordPressをインストールします。 
# @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。 
# @sacloud-desc http://サーバのIPアドレス/ 
# @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します) 
サーバ作成画面のスタートアップスクリプト 
選択欄に説明文として表示される
34 
WordPressのスタートアップスクリプト-2 
#---------START OF iptables---------# 
cat <<'EOT' > /etc/sysconfig/iptables 
*filter 
:INPUT DROP [0:0] 
:FORWARD DROP [0:0] 
:OUTPUT ACCEPT [0:0] 
:fail2ban-SSH - [0:0] 
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH 
-A INPUT -p TCP -m state --state NEW ! --syn -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT 
-A INPUT -p udp --sport 53 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A fail2ban-SSH -j RETURN 
COMMIT 
EOT 
service iptables restart 
#---------END OF iptables---------# 
iptablesの設定を行う 
(C)1996-2014 SAKURA Internet Inc.
35 
WordPressのスタートアップスクリプト-3 
#---------START OF LAMP---------# 
yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1 
service httpd status >/dev/null 2>&1 || service httpd start 
(C)1996-2014 SAKURA Internet Inc. 
for i in {1..5}; do 
sleep 1 
service httpd status && break 
[ "$i" -lt 5 ] || exit 1 
done 
chkconfig httpd on || exit 1 
service mysqld status >/dev/null 2>&1 || service mysqld start 
for i in {1..5}; do 
sleep 1 
service mysqld status && break 
[ "$i" -lt 5 ] || exit 1 
done 
chkconfig mysqld on || exit 1 
NEWMYSQLPASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` 
/usr/bin/mysqladmin -u root password "$NEWMYSQLPASSWORD" || exit 1 
cat <<EOT > /root/.my.cnf 
[client] 
host = localhost 
user = root 
password = $NEWMYSQLPASSWORD 
socket = /var/lib/mysql/mysql.sock 
EOT 
chmod 600 /root/.my.cnf 
#---------END OF LAMP---------# 
Apache、MySQL、PHPの 
インストールを行う
36 
WordPressのスタートアップスクリプト-4 
(C)1996-2014 SAKURA Internet Inc. 
#---------START OF WordPress---------# 
USERNAME="wp_`mkpasswd -l 10 -C 0 -s 0`" 
PASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` 
curl -L http://ja.wordpress.org/latest-ja.tar.gz | tar zxf - -C /var/www/ || exit 1 
mv /var/www/wordpress /var/www/$USERNAME 
cat <<EOT > /var/www/$USERNAME/wp-config.php 
<?php 
/** WordPress のためのデータベース名 */ 
define('DB_NAME', '$USERNAME'); 
/** MySQL データベースのユーザー名 */ 
define('DB_USER', '$USERNAME'); 
/** MySQL データベースのパスワード */ 
define('DB_PASSWORD', '$PASSWORD'); 
/** MySQL のホスト名 */ 
define('DB_HOST', 'localhost'); 
define('DB_CHARSET', 'utf8'); 
define('DB_COLLATE', ''); 
¥$table_prefix = 'wp_'; 
define('WPLANG', 'ja'); 
define('WP_DEBUG', false); 
EOT 
curl -L https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/$USERNAME/wp-config.php 
cat <<'EOT' >> /var/www/$USERNAME/wp-config.php 
if ( !defined('ABSPATH') ) 
define('ABSPATH', dirname(__FILE__) . '/'); 
require_once(ABSPATH . 'wp-settings.php'); 
EOT 
mysql --defaults-file=/root/.my.cnf <<-EOT 
CREATE DATABASE IF NOT EXISTS $USERNAME; 
GRANT ALL ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD'; 
FLUSH PRIVILEGES; 
EOT 
cat <<EOT > /etc/httpd/conf.d/$USERNAME.conf 
<VirtualHost *:80> 
DocumentRoot /var/www/$USERNAME 
AllowEncodedSlashes On 
<Directory /> 
Options FollowSymLinks 
AllowOverride None 
</Directory> 
<Directory "/var/www/$USERNAME"> 
Options FollowSymLinks MultiViews ExecCGI 
AllowOverride All 
Order allow,deny 
allow from all 
</Directory> 
</VirtualHost> 
EOT 
service httpd reload || exit 1 
chown -R apache:apache /var/www || exit 1 
WordPressのインストールを行う 
1. WordPressをダウンロードして、展開 
2. 設定ファイル(wp-config.php)を編集 
3. mysqlにデータベースを作成 
4. httpdのconfigファイルを編集
37 
(C)1996-2014 SAKURA Internet Inc. 
concrete5とは 
・アメリカのデザイン会社より生まれたオープン 
ソースのCMS。 
・ブラウザ上での直観的な操作によるコンテンツ 
デザインが可能。 
・concrete5 Japan 日本語公式サイト 
http://concrete5-japan.org/ 
・concrete5 - Free CMS 
Open Source Content Management System 
http://www.concrete5.org/
38 
(C)1996-2014 SAKURA Internet Inc. 
編集のポイント 
・ダウンロードURLの変更 
・展開方法の変更 
・インストールスクリプトの仕様に応じた、スク 
リプトの変更の要否を確認。
39 
concrete5のスタートアップスクリプトの例-1 
1回だけ 
実行する 
(C)1996-2014 SAKURA Internet Inc. 
#!/bin/bash 
# @sacloud-once 
# @sacloud-desc concrete5をインストールします。 
# @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。 
# @sacloud-desc http://サーバのIPアドレス/ 
# @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します) 
サーバ作成画面のスタートアップスクリプト 
選択欄に説明文として表示される
40 
concrete5のスタートアップスクリプトの例-2 
#---------START OF iptables---------# 
cat <<'EOT' > /etc/sysconfig/iptables 
*filter 
:INPUT DROP [0:0] 
:FORWARD DROP [0:0] 
:OUTPUT ACCEPT [0:0] 
:fail2ban-SSH - [0:0] 
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH 
-A INPUT -p TCP -m state --state NEW ! --syn -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT 
-A INPUT -p udp --sport 53 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A fail2ban-SSH -j RETURN 
COMMIT 
EOT 
service iptables restart 
#---------END OF iptables---------# 
iptablesの設定を行う 
(C)1996-2014 SAKURA Internet Inc. 
※変更点なし
41 
concrete5のスタートアップスクリプトの例-3 
#---------START OF LAMP---------# 
yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1 
service httpd status >/dev/null 2>&1 || service httpd start 
(C)1996-2014 SAKURA Internet Inc. 
for i in {1..5}; do 
sleep 1 
service httpd status && break 
[ "$i" -lt 5 ] || exit 1 
done 
chkconfig httpd on || exit 1 
service mysqld status >/dev/null 2>&1 || service mysqld start 
for i in {1..5}; do 
sleep 1 
service mysqld status && break 
[ "$i" -lt 5 ] || exit 1 
done 
chkconfig mysqld on || exit 1 
NEWMYSQLPASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` 
/usr/bin/mysqladmin -u root password "$NEWMYSQLPASSWORD" || exit 1 
cat <<EOT > /root/.my.cnf 
[client] 
host = localhost 
user = root 
password = $NEWMYSQLPASSWORD 
socket = /var/lib/mysql/mysql.sock 
EOT 
chmod 600 /root/.my.cnf 
#---------END OF LAMP---------# 
Apache、MySQL、PHPの 
インストールを行う 
※変更点なし
42 
concrete5のスタートアップスクリプトの例-4 
concrete5のインストールを行う 
1. concrete5をダウンロードして、展開 
2. インストール支援スクリプト(install-concrete5. 
php)をダウンロード 
3. mysqlにデータベースを作成 
4. httpdのconfigファイルを編集 
5. インストール支援スクリプトにオプションを指定 
して実行 
(C)1996-2014 SAKURA Internet Inc. 
#---------START OF concrete5---------# 
USERNAME="c5_`mkpasswd -l 10 -C 0 -s 0`" 
PASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` 
curl -L http://direct.concrete5-japan.org/index.php/download_file/view/1310/45/ > c5.zip || exit 1 
unzip c5.zip 
mv concrete5.6.3.1.ja /var/www/$USERNAME 
cd /var/www 
curl -s -f -L https://raw2.github.com/concrete5/concrete5/master/cli/install-concrete5.php -O 
chmod 777 /var/www/install-concrete5.php 
cat <<EOT > /var/www/install-command-sample 
./install-concrete5.php 
--db-server=localhost 
--db-username=$USERNAME 
--db-password=$PASSWORD 
--db-database=$USERNAME 
--starting-point=blank 
--admin-password=(パスワード) 
--admin-email=(メールアドレス) 
--target=./$USERNAME 
--site=concrete5sample 
--core=./$USERNAME/concrete 
--reinstall=no 
EOT 
mysql --defaults-file=/root/.my.cnf <<-EOT 
CREATE DATABASE IF NOT EXISTS $USERNAME; 
GRANT ALL ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD'; 
FLUSH PRIVILEGES; 
EOT 
cat <<EOT > /etc/httpd/conf.d/$USERNAME.conf 
<VirtualHost *:80> 
DocumentRoot /var/www/$USERNAME 
AllowEncodedSlashes On 
<Directory /> 
Options FollowSymLinks 
AllowOverride None 
</Directory> 
<Directory "/var/www/$USERNAME"> 
Options FollowSymLinks MultiViews ExecCGI 
AllowOverride All 
Order allow,deny 
allow from all 
</Directory> 
</VirtualHost> 
EOT 
service httpd reload || exit 1 
chown -R apache:apache /var/www || exit 1 
./install-concrete5.php --db-server=localhost --db-username=$USERNAME --db-password=$PASSWORD --db-database=$USERNAME --starting-point=blank --admin-password=(パスワード) --admin-email=(メールアドレス) --target=./$USERNAME --site=concrete5sample --core=./$USERNAME/concrete -- 
reinstall=no
43 
実際の画面 
(デモ、もしくは動画でのご紹介) 
(C)1996-2014 SAKURA Internet Inc.
44 
(C)1996-2014 SAKURA Internet Inc. 
残された課題 
1. バージョンが決め打ちになってしまう。 
2. インストールスクリプトの仕様が異なるため、 
アカウント情報の一部を自動生成できない。
45 
今後の機能改良:gitからのインポートに対応予定 
他の人の作ったスタートアップスク 
リプトをベースに、簡単にサーバー 
立ち上げができるように! 
(C)1996-2014 SAKURA Internet Inc.
46 
ご清聴ありがとうございました 
ブログやTwitterでの感想をお待ちしております 
(C)1996-2014 SAKURA Internet Inc. 
• さくらの広報 
– Twitter(公式) @sakura_pr 
• さくらのクラウド 
– ハッシュタグ #sacloud 
– Twitter(公式) @sakuracloud

Weitere ähnliche Inhalte

Was ist angesagt?

2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker2015-01-27 Introduction to Docker
2015-01-27 Introduction to DockerShuji Yamada
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみたサーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみたVirtualTech Japan Inc.
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化Shigeru Tsubota
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版Kazuto Kusama
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~HommasSlide
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Tomoya Hibi
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワークKazuyuki Mori
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002Takeshi Kuramochi
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門Toru Miyahara
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例SAKURA Internet Inc.
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgKentaro Ebisawa
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ poolmookjp
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたAkira Iwamoto
 

Was ist angesagt? (20)

2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみたサーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
 
【さくらのクラウド】ローカルルータ導入ガイド
【さくらのクラウド】ローカルルータ導入ガイド【さくらのクラウド】ローカルルータ導入ガイド
【さくらのクラウド】ローカルルータ導入ガイド
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
 
Cloud Foundry varz
Cloud Foundry varzCloud Foundry varz
Cloud Foundry varz
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfg
 
nginx入門
nginx入門nginx入門
nginx入門
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ pool
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみた
 

Ähnlich wie 「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)

Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327Kunihiro TANAKA
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
Docker 18.09 新機能
Docker 18.09 新機能Docker 18.09 新機能
Docker 18.09 新機能Akihiro Suda
 
201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcfIDC Frontier
 
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01Haruhiko KAJIKAWA
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったCHY72
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth LINE Corporation
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらTakuma Nakajima
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたTakashi Umeno
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化hiroyuki nakajima
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪Yu Ito
 
OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続Takashi Umeno
 
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜Eisaku Terao
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationyukihiro kawada
 
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】Eisaku Terao
 

Ähnlich wie 「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane) (20)

Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Docker 18.09 新機能
Docker 18.09 新機能Docker 18.09 新機能
Docker 18.09 新機能
 
201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf
 
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみた
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 
OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続
 
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
 

Mehr von さくらインターネット株式会社

正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論さくらインターネット株式会社
 
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312さくらインターネット株式会社
 
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介さくらインターネット株式会社
 
セキュアモバイルコネクト&sakura.ioと高火力コンピューティング
セキュアモバイルコネクト&sakura.ioと高火力コンピューティングセキュアモバイルコネクト&sakura.ioと高火力コンピューティング
セキュアモバイルコネクト&sakura.ioと高火力コンピューティングさくらインターネット株式会社
 

Mehr von さくらインターネット株式会社 (20)

eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
 
石狩での プログラミング教育支援 ~2年目の成果~
石狩でのプログラミング教育支援~2年目の成果~石狩でのプログラミング教育支援~2年目の成果~
石狩での プログラミング教育支援 ~2年目の成果~
 
さくらインターネットとコミュニティをつなぐ
さくらインターネットとコミュニティをつなぐさくらインターネットとコミュニティをつなぐ
さくらインターネットとコミュニティをつなぐ
 
【さくらのクラウド】サービス概要カタログ 2018年10月号
【さくらのクラウド】サービス概要カタログ 2018年10月号【さくらのクラウド】サービス概要カタログ 2018年10月号
【さくらのクラウド】サービス概要カタログ 2018年10月号
 
小学校プログラミング教育 ~石狩の場合~
小学校プログラミング教育 ~石狩の場合~小学校プログラミング教育 ~石狩の場合~
小学校プログラミング教育 ~石狩の場合~
 
【さくらのクラウド】サービス概要カタログ 2018年8月号
【さくらのクラウド】サービス概要カタログ 2018年8月号【さくらのクラウド】サービス概要カタログ 2018年8月号
【さくらのクラウド】サービス概要カタログ 2018年8月号
 
【さくらのクラウド】サービス概要カタログ 2018年7月号
【さくらのクラウド】サービス概要カタログ 2018年7月号【さくらのクラウド】サービス概要カタログ 2018年7月号
【さくらのクラウド】サービス概要カタログ 2018年7月号
 
パートナーと共創する さくらのクラウドのサービス展開
パートナーと共創する さくらのクラウドのサービス展開パートナーと共創する さくらのクラウドのサービス展開
パートナーと共創する さくらのクラウドのサービス展開
 
【さくらのクラウド】サービス概要カタログ 2018年6月号
【さくらのクラウド】サービス概要カタログ 2018年6月号 【さくらのクラウド】サービス概要カタログ 2018年6月号
【さくらのクラウド】サービス概要カタログ 2018年6月号
 
Sakura infini band-20180424
Sakura infini band-20180424Sakura infini band-20180424
Sakura infini band-20180424
 
【さくらのクラウド】サービス概要カタログ 2018年4月号
【さくらのクラウド】サービス概要カタログ 2018年4月号 【さくらのクラウド】サービス概要カタログ 2018年4月号
【さくらのクラウド】サービス概要カタログ 2018年4月号
 
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
 
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
 
【さくらのクラウド】サービス概要カタログ 2018年3月号
【さくらのクラウド】サービス概要カタログ 2018年3月号 【さくらのクラウド】サービス概要カタログ 2018年3月号
【さくらのクラウド】サービス概要カタログ 2018年3月号
 
駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302
駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302
駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302
 
sakura.io体験ハンズオン 20180228
sakura.io体験ハンズオン 20180228sakura.io体験ハンズオン 20180228
sakura.io体験ハンズオン 20180228
 
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
 
【さくらのクラウド】サービス概要カタログ 2018年2月号
【さくらのクラウド】サービス概要カタログ 2018年2月号 【さくらのクラウド】サービス概要カタログ 2018年2月号
【さくらのクラウド】サービス概要カタログ 2018年2月号
 
セキュアモバイルコネクト&sakura.ioと高火力コンピューティング
セキュアモバイルコネクト&sakura.ioと高火力コンピューティングセキュアモバイルコネクト&sakura.ioと高火力コンピューティング
セキュアモバイルコネクト&sakura.ioと高火力コンピューティング
 

「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)

  • 1. 「さくらのクラウド」 スタートアップスクリプトを作ってみよう! - concrete5を題材に - さくらインターネット株式会社 広報宣伝室 林 雅也 2014年8月23日 ※concrete5 は Concrete CMS, Inc および、コンクリートファイブジャパン株式会社の登録商標です (C)1996-2014 SAKURA Internet Inc.
  • 2. 2 (C)1996-2014 SAKURA Internet Inc. 当セッションの概要 このセッションでは、さくらインターネット株式 会社が提供するパブリッククラウドサービス「さ くらのクラウド」がもつ「スタートアップスクリ プト」という機能をご紹介させていただきます。 また、オープンソースCMSである「concrete5」 を題材に、既存のスクリプトを元に、オリジナル スクリプトを作成する方法について、ご説明させ ていただきます。
  • 3. 3 (C)1996-2014 SAKURA Internet Inc. 自己紹介 • さくらインターネット株式会社 林 雅也 – 2005年入社。社内インフラ担当など 2014年4月より広報宣伝室 – KOFやOSCに参加するようになり、少しずつオープ ンソースコミュニティに興味を持つようになる。 – Twitter:@haya2_ – Facebook:https://www.facebook.com/haya4
  • 4. 4 1996年からサービスを行う データセンター・ホスティングの老舗です (C)1996-2014 SAKURA Internet Inc. さくらインターネット 1996年 京都府舞鶴市にて創業 1998年 大阪市中央区へ移転 1999年 株式会社化、東京支社開設 大阪・東京へIDCを新設 2005年 東証マザーズへ上場 2011年 石狩IDCを新設 商号 さくらインターネット株式会社 本社所在地 大阪市中央区南本町一丁目8番14号 設立年月日 1999年8月17日 (サービス開始は1996年12月23日) 取締役 代表取締役 社長 田中 邦裕 取締役 副社長 舘野 正明 取締役 川田 正貴 取締役 村上 宗久 取締役(非常勤)森田 勝也 取締役(非常勤)辻 壮 上場年月日 2005年10月12日(東証マザーズ) 決算 3月末日 資本金 8億9,530万円 従業員数 236名 (2014年3月末)
  • 6. 6 さくらのクラウドのコンセプト • 所謂IaaS型のクラウドサービス – 何の変哲もないIaaS型クラウド – 物理サーバ、物理ネットワーク → そのまま、まるごと仮想化 (C)1996-2014 SAKURA Internet Inc.
  • 7. 7 (C)1996-2014 SAKURA Internet Inc. たくさんのサーバを
  • 11. 11 時間割課金にも対応しています (C)1996-2014 SAKURA Internet Inc. 時間割料金表
  • 13. 13 (C)1996-2014 SAKURA Internet Inc. OSの選択も可能で
  • 16. 16 (C)1996-2014 SAKURA Internet Inc. fstabを変更したり
  • 19. 19 (C)1996-2014 SAKURA Internet Inc. NICを追加して
  • 21. 21 物理データセンターとも接続できます ハイブリッド接続を利用すれば 「さくらの専用サーバ」「リモートハウジング」と接続可能 (C)1996-2014 SAKURA Internet Inc.
  • 23. $ curl --user “APIKEY":“SECRET" https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/ Index":0,"ID":"112400226821","Name":"git¥u30b5¥u30fc¥u30d01","HostName":"localhost","Description":"","ServiceCla ss":"cloud¥/plan¥/1","CreatedAt":"2012-05-07T00:19:44+09:00“,"Icon":{"ID":"112500078923", "URL":"https:¥/¥/secure.sakura.ad.jp¥/cloud¥/zone¥/is1a¥/api¥/cloud¥/1.1¥/icon¥/112500078923.png","Name":"¥u30c d¥u30b3","Sc 23 $ curl --user “APIKEY":“SECRET" -H 'X-Sakura-API-Beautify:1' https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/ "From": 0, (C)1996-2014 SAKURA Internet Inc. 標準でAPIをサポート "Count": 29, "Total": 29, "Servers": [ REST形式でアクセス可能で、/server/ならサーバ一覧など、 直観的なAPIアクセスを実現。 { "Index": 0, "ID": "112400226821", "Name": "git¥u30b5¥u30fc¥u30d01", "HostName": "localhost“,
  • 24. 24 CLI “sacloud”も用意しています $ sudo ~/.nave/nave.sh usemain stable [sudo] password for tanaka: ######################################################################## 100.0% installed from binary $ sudo npm install -g sacloud $ sacloud config --apiRoot="https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/" /home/tanaka/.sacloudcfg.json: { "apiRoot": "https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/" } $ sacloud config --accessToken=APIKEY --accessTokenSecret=SECRET /home/tanaka/.sacloudcfg.json: { "apiRoot": "https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/", "accessToken": “APIKEY", "accessTokenSecret": “SECRET" } $ sacloud show server GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server.json?{} -> 200 OK (1/1) ~1.539sec +--------------+--------------------+--------+---------------------+ | id | name | status | created at | +--------------+--------------------+--------+---------------------+ | 112400226821 | gitサーバ1 | up | 2012-05-07 00:19:44 | +--------------+--------------------+--------+---------------------+ | 112500271369 | www2 | up | 2013-06-20 00:27:33 | +--------------+--------------------+--------+---------------------+ | 112400258152 | rp1 | up | 2012-05-28 15:35:11 | (C)1996-2014 SAKURA Internet Inc.
  • 25. 25 スタートアップスクリプト サーバ作成時に任意のシェルスクリプトを 「スタートアップスクリプト」から選択しておけば サーバ起動時に実行させることができます。 (C)1996-2014 SAKURA Internet Inc.
  • 26. 26 (C)1996-2014 SAKURA Internet Inc. パブリックスクリプト
  • 28. 28 スタートアップスクリプト の仕組み (C)1996-2014 SAKURA Internet Inc.
  • 29. ※スタートアップスクリプト機能は現在、CentOS、 ScientificLinux、Ubuntu、 Debian GNU/Linux 環境で動作いたします。 29 スタートアップスクリプトとは スタートアップスクリプトは、新たにサーバを作 成する際、任意のシェルスクリプトを記述した 「スタートアップスクリプト」を選択することに より、起動時にそれらを自動的に実行する機能で す。 (C)1996-2014 SAKURA Internet Inc. ※2014年9月2日訂正
  • 30. サーバ作成画面でスタートアップスクリプトを選択すると、起動 後のサーバ内で以下の動作が行われます。 1. 起動時、/etc/rc.localが/root/.sacloud-api/startup.shを実行 2. startup.shが、「スタートアップスクリプト」で指定したスク リプト(“/root/.sacloud-api/notes/スタートアップスクリプト ID“に配置)を実行 と、”/root/.sacloud-api/notes/スタートアップスクリプト ID.done”という名前の空ファイルを作成(このファイルが存在 すると@sacloud-once を指定したスクリプトは実行されない) 30 スタートアップスクリプトの動作 3. スクリプトが実行され、ログが”/root/.sacloud-api/notes/ス タートアップスクリプトID.log”に出力される 4. 各スクリプトが正しく(終了コードが”0″)終了する (C)1996-2014 SAKURA Internet Inc.
  • 31. 31 スタートアップスクリプトの例 – WordPress - (C)1996-2014 SAKURA Internet Inc.
  • 32. 32 このスタートアップスクリプトの基本構成 1. 説明 2. iptablesの設定 3. Apache、MySQL、PHPのインストール 4. WordPressのインストール (C)1996-2014 SAKURA Internet Inc.
  • 33. 33 WordPressのスタートアップスクリプト-1 1回だけ 実行する (C)1996-2014 SAKURA Internet Inc. #!/bin/bash # @sacloud-once # @sacloud-desc WordPressをインストールします。 # @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。 # @sacloud-desc http://サーバのIPアドレス/ # @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します) サーバ作成画面のスタートアップスクリプト 選択欄に説明文として表示される
  • 34. 34 WordPressのスタートアップスクリプト-2 #---------START OF iptables---------# cat <<'EOT' > /etc/sysconfig/iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :fail2ban-SSH - [0:0] -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH -A INPUT -p TCP -m state --state NEW ! --syn -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p udp --sport 123 --dport 123 -j ACCEPT -A INPUT -p udp --sport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A fail2ban-SSH -j RETURN COMMIT EOT service iptables restart #---------END OF iptables---------# iptablesの設定を行う (C)1996-2014 SAKURA Internet Inc.
  • 35. 35 WordPressのスタートアップスクリプト-3 #---------START OF LAMP---------# yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1 service httpd status >/dev/null 2>&1 || service httpd start (C)1996-2014 SAKURA Internet Inc. for i in {1..5}; do sleep 1 service httpd status && break [ "$i" -lt 5 ] || exit 1 done chkconfig httpd on || exit 1 service mysqld status >/dev/null 2>&1 || service mysqld start for i in {1..5}; do sleep 1 service mysqld status && break [ "$i" -lt 5 ] || exit 1 done chkconfig mysqld on || exit 1 NEWMYSQLPASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` /usr/bin/mysqladmin -u root password "$NEWMYSQLPASSWORD" || exit 1 cat <<EOT > /root/.my.cnf [client] host = localhost user = root password = $NEWMYSQLPASSWORD socket = /var/lib/mysql/mysql.sock EOT chmod 600 /root/.my.cnf #---------END OF LAMP---------# Apache、MySQL、PHPの インストールを行う
  • 36. 36 WordPressのスタートアップスクリプト-4 (C)1996-2014 SAKURA Internet Inc. #---------START OF WordPress---------# USERNAME="wp_`mkpasswd -l 10 -C 0 -s 0`" PASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` curl -L http://ja.wordpress.org/latest-ja.tar.gz | tar zxf - -C /var/www/ || exit 1 mv /var/www/wordpress /var/www/$USERNAME cat <<EOT > /var/www/$USERNAME/wp-config.php <?php /** WordPress のためのデータベース名 */ define('DB_NAME', '$USERNAME'); /** MySQL データベースのユーザー名 */ define('DB_USER', '$USERNAME'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '$PASSWORD'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); ¥$table_prefix = 'wp_'; define('WPLANG', 'ja'); define('WP_DEBUG', false); EOT curl -L https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/$USERNAME/wp-config.php cat <<'EOT' >> /var/www/$USERNAME/wp-config.php if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php'); EOT mysql --defaults-file=/root/.my.cnf <<-EOT CREATE DATABASE IF NOT EXISTS $USERNAME; GRANT ALL ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD'; FLUSH PRIVILEGES; EOT cat <<EOT > /etc/httpd/conf.d/$USERNAME.conf <VirtualHost *:80> DocumentRoot /var/www/$USERNAME AllowEncodedSlashes On <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/$USERNAME"> Options FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> EOT service httpd reload || exit 1 chown -R apache:apache /var/www || exit 1 WordPressのインストールを行う 1. WordPressをダウンロードして、展開 2. 設定ファイル(wp-config.php)を編集 3. mysqlにデータベースを作成 4. httpdのconfigファイルを編集
  • 37. 37 (C)1996-2014 SAKURA Internet Inc. concrete5とは ・アメリカのデザイン会社より生まれたオープン ソースのCMS。 ・ブラウザ上での直観的な操作によるコンテンツ デザインが可能。 ・concrete5 Japan 日本語公式サイト http://concrete5-japan.org/ ・concrete5 - Free CMS Open Source Content Management System http://www.concrete5.org/
  • 38. 38 (C)1996-2014 SAKURA Internet Inc. 編集のポイント ・ダウンロードURLの変更 ・展開方法の変更 ・インストールスクリプトの仕様に応じた、スク リプトの変更の要否を確認。
  • 39. 39 concrete5のスタートアップスクリプトの例-1 1回だけ 実行する (C)1996-2014 SAKURA Internet Inc. #!/bin/bash # @sacloud-once # @sacloud-desc concrete5をインストールします。 # @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。 # @sacloud-desc http://サーバのIPアドレス/ # @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します) サーバ作成画面のスタートアップスクリプト 選択欄に説明文として表示される
  • 40. 40 concrete5のスタートアップスクリプトの例-2 #---------START OF iptables---------# cat <<'EOT' > /etc/sysconfig/iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :fail2ban-SSH - [0:0] -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH -A INPUT -p TCP -m state --state NEW ! --syn -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p udp --sport 123 --dport 123 -j ACCEPT -A INPUT -p udp --sport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A fail2ban-SSH -j RETURN COMMIT EOT service iptables restart #---------END OF iptables---------# iptablesの設定を行う (C)1996-2014 SAKURA Internet Inc. ※変更点なし
  • 41. 41 concrete5のスタートアップスクリプトの例-3 #---------START OF LAMP---------# yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1 service httpd status >/dev/null 2>&1 || service httpd start (C)1996-2014 SAKURA Internet Inc. for i in {1..5}; do sleep 1 service httpd status && break [ "$i" -lt 5 ] || exit 1 done chkconfig httpd on || exit 1 service mysqld status >/dev/null 2>&1 || service mysqld start for i in {1..5}; do sleep 1 service mysqld status && break [ "$i" -lt 5 ] || exit 1 done chkconfig mysqld on || exit 1 NEWMYSQLPASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` /usr/bin/mysqladmin -u root password "$NEWMYSQLPASSWORD" || exit 1 cat <<EOT > /root/.my.cnf [client] host = localhost user = root password = $NEWMYSQLPASSWORD socket = /var/lib/mysql/mysql.sock EOT chmod 600 /root/.my.cnf #---------END OF LAMP---------# Apache、MySQL、PHPの インストールを行う ※変更点なし
  • 42. 42 concrete5のスタートアップスクリプトの例-4 concrete5のインストールを行う 1. concrete5をダウンロードして、展開 2. インストール支援スクリプト(install-concrete5. php)をダウンロード 3. mysqlにデータベースを作成 4. httpdのconfigファイルを編集 5. インストール支援スクリプトにオプションを指定 して実行 (C)1996-2014 SAKURA Internet Inc. #---------START OF concrete5---------# USERNAME="c5_`mkpasswd -l 10 -C 0 -s 0`" PASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` curl -L http://direct.concrete5-japan.org/index.php/download_file/view/1310/45/ > c5.zip || exit 1 unzip c5.zip mv concrete5.6.3.1.ja /var/www/$USERNAME cd /var/www curl -s -f -L https://raw2.github.com/concrete5/concrete5/master/cli/install-concrete5.php -O chmod 777 /var/www/install-concrete5.php cat <<EOT > /var/www/install-command-sample ./install-concrete5.php --db-server=localhost --db-username=$USERNAME --db-password=$PASSWORD --db-database=$USERNAME --starting-point=blank --admin-password=(パスワード) --admin-email=(メールアドレス) --target=./$USERNAME --site=concrete5sample --core=./$USERNAME/concrete --reinstall=no EOT mysql --defaults-file=/root/.my.cnf <<-EOT CREATE DATABASE IF NOT EXISTS $USERNAME; GRANT ALL ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD'; FLUSH PRIVILEGES; EOT cat <<EOT > /etc/httpd/conf.d/$USERNAME.conf <VirtualHost *:80> DocumentRoot /var/www/$USERNAME AllowEncodedSlashes On <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/$USERNAME"> Options FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> EOT service httpd reload || exit 1 chown -R apache:apache /var/www || exit 1 ./install-concrete5.php --db-server=localhost --db-username=$USERNAME --db-password=$PASSWORD --db-database=$USERNAME --starting-point=blank --admin-password=(パスワード) --admin-email=(メールアドレス) --target=./$USERNAME --site=concrete5sample --core=./$USERNAME/concrete -- reinstall=no
  • 44. 44 (C)1996-2014 SAKURA Internet Inc. 残された課題 1. バージョンが決め打ちになってしまう。 2. インストールスクリプトの仕様が異なるため、 アカウント情報の一部を自動生成できない。
  • 45. 45 今後の機能改良:gitからのインポートに対応予定 他の人の作ったスタートアップスク リプトをベースに、簡単にサーバー 立ち上げができるように! (C)1996-2014 SAKURA Internet Inc.
  • 46. 46 ご清聴ありがとうございました ブログやTwitterでの感想をお待ちしております (C)1996-2014 SAKURA Internet Inc. • さくらの広報 – Twitter(公式) @sakura_pr • さくらのクラウド – ハッシュタグ #sacloud – Twitter(公式) @sakuracloud