この Automation Assembler 設計のサンプルでは、アプリケーション サーバが 1 台だけの場合など、最小限の WordPress リソースのみを含むクラウド テンプレートから開始します。
Automation Assembler は、infrastructure-as-code ツールです。開始するには、リソースをデザイン キャンバスにドラッグします。次に、キャンバスの右側にあるコード エディタを使用して詳細を設定します。
コード エディタを使用すると、コードの入力、切り取り、貼り付けを直接行うことができます。コードの編集に慣れていない場合は、キャンバスでリソースを選択し、コード エディタの [プロパティ] タブをクリックして値を入力します。入力した値は、コードに直接入力した場合と同じように表示されます。
手順
例: 完成した基本的なクラウド テンプレート コードの例
formatVersion: 1 inputs: env: type: string enum: - env:dev - env:prod - env:test default: env:dev title: Environment description: Target Environment size: type: string enum: - small - medium - large description: Size of Nodes title: Tier Machine Size username: type: string minLength: 4 maxLength: 20 pattern: '[a-z]+' title: Database Username description: Database Username userpassword: type: string pattern: '[a-z0-9A-Z@#$]+' encrypted: true title: Database Password description: Database Password resources: WebTier: type: Cloud.Machine properties: name: wordpress image: ubuntu flavor: '${input.size}' constraints: - tag: '${input.env}' networks: - network: '${resource["WP-Network-Private"].id}' assignPublicIpAddress: true cloudConfig: | #cloud-config repo_update: true repo_upgrade: all packages: - apache2 - php - php-mysql - libapache2-mod-php - mysql-client - gcc - make - autoconf - libc-dev - pkg-config - libmcrypt-dev - php-pear - php-dev 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 10 ]; 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 - pecl channel-update pecl.php.net - pecl update-channels - pecl install mcrypt - 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 - sed -i '950i extension=mcrypt.so' /etc/php/7.4/apache2/php.ini - service apache2 reload DBTier: type: Cloud.Machine properties: name: mysql image: ubuntu flavor: '${input.size}' constraints: - tag: '${input.env}' networks: - network: '${resource["WP-Network-Private"].id}' assignPublicIpAddress: true remoteAccess: authentication: usernamePassword username: '${input.username}' password: '${input.userpassword}' cloudConfig: | #cloud-config repo_update: true repo_upgrade: all packages: - mysql-server runcmd: - sed -e '/bind-address/ s/^#*/#/' -i /etc/mysql/mysql.conf.d/mysqld.cnf - service mysql restart - mysql -e "CREATE USER 'root'@'%' IDENTIFIED BY 'mysqlpassword';" - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';" - mysql -e "FLUSH PRIVILEGES;" attachedDisks: [] WP-Network-Private: type: Cloud.Network properties: name: WP-Network-Private networkType: existing
次のタスク
構文を確認して展開することにより、クラウド テンプレートをテストします。