我刚刚使用一堆Rightscripts创建了我的第一个Rightscale ServerTemplate和Deployment。我创建的一个脚本是向apache添加虚拟主机。
#!/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,Port,www dir和Servername)设置不同的输入?例如
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
答案 0 :(得分:2)
只有将该脚本放在ServerTemplate的“操作脚本”部分中时,才能将相同的RightScript用于不同的输入。然后,如果将输入留空,则可以多次使用不同的输入执行该操作脚本。
如果您希望在“引导脚本”部分中使用该行为,则必须创建一个脚本来处理两组输入(对于两个vhost)或创建一个具有不同名称和不同的RightScript的克隆输入名称。
您可以考虑查看基于Chef的工具。您可以创建一个Chef配方,它将一系列vhost名称作为输入,然后执行设置vhost的“apache_site”资源。您可以在下面链接的RightScale Chef代码中看到一个示例。