В код шаблона vRealize Automation Cloud Assembly можно добавить раздел cloudConfig, который будет содержать команды инициализации компьютера, выполняемые во время развертывания.
- В ОС Linux команды инициализации соответствуют открытому стандарту cloud-init.
- В ОС Windows для поддержки команд инициализации используется служба Cloudbase-init.
Команды инициализации используются для автоматизации применения данных или параметров во время создания экземпляра. С их помощью можно настраивать пользователей, разрешения, устанавливаемые решения и любые другие операции на основе выполнения команд. Примеры
- Настройка имени узла
- Создание и настройка закрытых ключей SSH
- Установка пакетов
Служба vRealize Automation Cloud Assembly также позволяет предварительно добавлять команды инициализации в образ компьютера при настройке инфраструктуры. Для всех облачных шаблонов, ссылающихся на исходный образ, выполняется одинаковая инициализация.
Если команда присутствует и в схеме элементов, и в сопоставлении образа, но ее параметры различаются, то выполняется только команда из сопоставления образа.
Дополнительные сведения см. в разделе Дополнительные сведения о сопоставлении образов в vRealize Automation.
Следующий пример раздела cloudConfig взят из кода облачного шаблона для сервера MySQL на базе Linux (этот код используется для примера использования WordPress).
Чтобы обеспечить правильную интерпретацию команд, всегда указывайте символ канала cloudConfig: |
, как показано ниже.
Если сценарий cloud-init имеет непредвиденное поведение, проверьте выходные данные на консоли в /var/log/cloud-init-output.log
в ходе устранения неполадок. Дополнительные сведения о cloud-init см. в документации по cloud-init.
cloudConfig: | #cloud-config repo_update: true repo_upgrade: all packages: - apache2 - php - php-mysql - libapache2-mod-php - php-mcrypt - mysql-client runcmd: - mkdir -p /var/www/html/mywordpresssite && cd /var/www/html && wget https://wordpress.org/latest.tar.gz && tar -xzf /var/www/html/latest.tar.gz -C /var/www/html/mywordpresssite --strip-components 1 - i=0; while [ $i -le 5 ]; do mysql --connect-timeout=3 -h ${DBTier.networks[0].address} -u root -pmysqlpassword -e "SHOW STATUS;" && break || sleep 15; i=$((i+1)); done - mysql -u root -pmysqlpassword -h ${DBTier.networks[0].address} -e "create database wordpress_blog;" - mv /var/www/html/mywordpresssite/wp-config-sample.php /var/www/html/mywordpresssite/wp-config.php - sed -i -e s/"define( 'DB_NAME', 'database_name_here' );"/"define( 'DB_NAME', 'wordpress_blog' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_USER', 'username_here' );"/"define( 'DB_USER', 'root' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_PASSWORD', 'password_here' );"/"define( 'DB_PASSWORD', 'mysqlpassword' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_HOST', 'localhost' );"/"define( 'DB_HOST', '${DBTier.networks[0].address}' );"/ /var/www/html/mywordpresssite/wp-config.php - service apache2 reload