2012-03-22 8 views
1

Rightscriptsを使用して、最初のRightscale ServerTemplateとDeploymentを作成しました。私が作成したスクリプトの1つは、仮想ホストをApacheに追加することでした。異なる入力を持つServerTemplateで同じRightscriptが複数回使用されました

#!/bin/bash -e 

if [ $RS_DISTRO = ubuntu ]; then 
    export apache=apache2 
    export apache_extra_conf_dir=/etc/apache2/conf.d 
elif [ $RS_DISTRO = centos ]; then 
    export apache=httpd 
    export apache_extra_conf_dir=/etc/httpd/conf.d 
fi 
server_name=$SERVER_NAME 

echo "Adding virtual hosts to ${apache_extra_conf_dir}/vh-${server_name}.conf" 
cat > $apache_extra_conf_dir/vh-${server_name}.conf <<EOF 

NameVirtualHost $SITE_IP:$SITE_PORT 

<VirtualHost $SITE_IP:$SITE_PORT> 
    ServerName $SERVER_NAME 
    ServerAlias $SITE_DOMAIN *.$SITE_DOMAIN 
    UseCanonicalName Off 

    ServerAdmin $ADMIN_EMAIL 
    DocumentRoot $APACHE_WWW_DIR 
    <Directory "$APACHE_WWW_DIR"> 
     Options FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 
EOF 

service $apache restart 
exit 0 

私の質問は、私はServerTemplateに二度同じRightscriptを使用しますが、それぞれ(IP、ポート、WWW dirとサーバー名)のための異なる入力を設定することができますか?例えば。

ServerTemplate:

Execute Rightscript vhost: *:80 /www-x/ x.com 
Execute Rightscript vhost: *:80 /www-y/ y.com 

または私はちょうど同じスクリプト内で定義された仮想ホストの両方を持っている、このサーバーの展開のための特別なRightscriptを作成する必要がありますか?

Execute Rightscript vhost: *:80 /www-x/ x.com | *:80 /www-y/ y.com 

答えて

2

ServerTemplateの[Operational Scripts]セクションにスクリプトを挿入した場合のみ、同じ入力スクリプトを使用できます。入力を空白のままにしておくと、その入力スクリプトをさまざまな入力で何度も実行することができます。

"起動スクリプト"セクションでその動作を行うには、2つの入力セット(2つの仮想ホスト用)を処理するスクリプトを1つ作成するか、別の名前でRightScriptの複製を作成するか、異なる入力名。

シェフベースのツールをご覧ください。 vhostの名前の配列を入力としてシェフのレシピを作成し、vhostを設定する「apache_site」リソースを実行することができます。下にリンクされているRightScale Chefコードの例を見ることができます。

https://github.com/rightscale/cookbooks_public/blob/master/cookbooks/web_apache/recipes/setup_frontend_http_vhost.rb

+0

大変ありがとうございます。 –

+0

すばらしい答え。ありがとう! – slik

関連する問題