Один и тот же RightScript использовался несколько раз на шаблоне сервера с разными входами - PullRequest
1 голос
/ 22 марта 2012

Я только что создал свой первый шаблон и развертывание Rightscale Server, используя несколько скриптов Rights.Один из сценариев, которые я создал, заключался в добавлении виртуального хоста в 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

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

1 Ответ

2 голосов
/ 31 марта 2012

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

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

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

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

...