2012-03-22 5 views
1

Я только что создал свой первый ServerCemplate и развертывание ServerCale, используя кучу дескрипторов. Один из сценариев, которые я создал, - это добавить виртуальный хост к apache.Тот же самый дескрипт, используемый несколько раз на ServerTemplate с разными входами

#!/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 

Мой вопрос я могу использовать то же Rightscript дважды на ServerTemplate но установить различные входы для каждого (IP, порт, WWW каталога и 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 

ответ

2

Вы можете использовать один и тот же RightScript с разными входами, только если поместить этот сценарий в разделе «Операционные Scripts» вашего ServerTemplate. Затем, если вы оставите пустые записи, вы можете выполнить этот сценарий работы с разными входами много раз.

Если вам нужно это поведение в разделе «Boot Scripts», вам придется либо создать один скрипт, который обрабатывает два набора входов (для двух vhosts), либо создает клон RightScript с другим именем и различные имена ввода.

Возможно, вам стоит взглянуть на инструменты, основанные на шеф-поваре. Вы можете создать рецепт шеф-повара, который принимает массив имен vhost в качестве входных данных, а затем запускает ресурс «apache_site», который устанавливает vhost. Вы можете увидеть пример в коде RightScale Chef, приведенном ниже.

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

+0

Удивительно, спасибо за информацию. –

+0

отличный ответ. благодаря! – slik

Смежные вопросы