Один и тот же RightScript использовался несколько раз на шаблоне сервера с разными входами
Я только что создал свой первый RightCale ServerTemplate and 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
У меня вопрос, могу ли я использовать один и тот же RightsScript дважды на шаблоне ServerTemplate, но устанавливать разные входы для каждого (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
1 ответ
Вы можете использовать один и тот же RightScript с разными входами, только если поместите этот сценарий в раздел "Операционные сценарии" на шаблоне сервера. Затем, если вы оставите входные данные пустыми, вы можете выполнить этот рабочий сценарий с разными входами много раз.
Если вам нужно такое поведение в разделе "Загрузочные сценарии", вам придется либо создать один сценарий, который обрабатывает два набора входных данных (для двух vhosts), либо создать клон RightScript с другим именем и другими входными именами.
Возможно, вы захотите взглянуть на инструменты на основе Chef. Вы можете создать рецепт Chef, который принимает массив имен vhost в качестве входных данных, а затем выполняет ресурс "apache_site", который устанавливает vhost. Вы можете увидеть пример в коде RightScale Chef, указанном ниже.