ユーザーデータ名"handson-cli-ec2-eip-httpd-userdata"のファイルを作成します。
手順に必要な設定値を変数に格納をします。
1. ユーザーデータ用ディレクトリの指定
ユーザーデータ用ディレクトリを指定します。
変数の設定: DIR_USER_DATA="${HOME}/environment/conf-handson-cli-ec2-eip"
変数の設定:
DIR_USER_DATA="${HOME}/environment/conf-handson-cli-ec2-eip"
ディレクトリが存在することを確認します。
コマンド: ls -d ${DIR_USER_DATA} 結果(例:存在する場合): ${HOME}/environment/conf-handson-cli-ec2-eip
コマンド:
ls -d ${DIR_USER_DATA}
結果(例:存在する場合):
${HOME}/environment/conf-handson-cli-ec2-eip
存在しない場合は作成します。
コマンド: mkdir -p ${DIR_USER_DATA} 結果(例): (出力なし)
mkdir -p ${DIR_USER_DATA}
結果(例):
(出力なし)
2. ユーザーデータファイル名の指定
ユーザーデータファイル名を指定します。
変数の設定: USER_DATA_NAME='handson-cli-ec2-eip-httpd-userdata' 変数の設定: FILE_USER_DATA="${DIR_USER_DATA}/${USER_DATA_NAME}.bash" \ && echo ${FILE_USER_DATA} 結果(例): ${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash
USER_DATA_NAME='handson-cli-ec2-eip-httpd-userdata'
FILE_USER_DATA="${DIR_USER_DATA}/${USER_DATA_NAME}.bash" \ && echo ${FILE_USER_DATA}
${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash
各変数に正しい設定値が格納されていることを確認しながら保存します。
変数の確認: cat << END # 0.1. DIR_USER_DATA:"${HOME}/environment/conf-handson-cli-ec2-eip" DIR_USER_DATA="${DIR_USER_DATA}" # 0.2. FILE_USER_DATA:"${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash" FILE_USER_DATA="${FILE_USER_DATA}" END
変数の確認:
cat << END # 0.1. DIR_USER_DATA:"${HOME}/environment/conf-handson-cli-ec2-eip" DIR_USER_DATA="${DIR_USER_DATA}" # 0.2. FILE_USER_DATA:"${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash" FILE_USER_DATA="${FILE_USER_DATA}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
ユーザーデータファイルを作成します。
コマンド: cat << EOF > ${FILE_USER_DATA} #!/bin/bash GIT_REPOSITORY_ORIGIN='https://github.com/opelab/jawsug-cli-sample-web.git' GIT_REPOSITORY_NAME='jawsug-cli-sample-web' yum -y update # setup httpd yum install -y httpd systemctl start httpd.service systemctl enable httpd.service yum -y install git # get contents cd /tmp/ \\ && git clone \${GIT_REPOSITORY_ORIGIN} # setup contents cp /tmp/\${GIT_REPOSITORY_NAME}/* /var/www/html/ EOF cat ${FILE_USER_DATA} 結果(例): #!/bin/bash GIT_REPOSITORY_ORIGIN='https://github.com/opelab/jawsug-cli-sample-web.git' GIT_REPOSITORY_NAME='jawsug-cli-sample-web' yum -y update # setup httpd yum install -y httpd systemctl start httpd.service systemctl enable httpd.service yum -y install git # get contents cd /home/ec2-user/ \ && git clone ${GIT_REPOSITORY_ORIGIN} # setup contents cp /home/ec2-user/${GIT_REPOSITORY_NAME}/* /var/www/html/
cat << EOF > ${FILE_USER_DATA} #!/bin/bash GIT_REPOSITORY_ORIGIN='https://github.com/opelab/jawsug-cli-sample-web.git' GIT_REPOSITORY_NAME='jawsug-cli-sample-web' yum -y update # setup httpd yum install -y httpd systemctl start httpd.service systemctl enable httpd.service yum -y install git # get contents cd /tmp/ \\ && git clone \${GIT_REPOSITORY_ORIGIN} # setup contents cp /tmp/\${GIT_REPOSITORY_NAME}/* /var/www/html/ EOF cat ${FILE_USER_DATA}
#!/bin/bash GIT_REPOSITORY_ORIGIN='https://github.com/opelab/jawsug-cli-sample-web.git' GIT_REPOSITORY_NAME='jawsug-cli-sample-web' yum -y update # setup httpd yum install -y httpd systemctl start httpd.service systemctl enable httpd.service yum -y install git # get contents cd /home/ec2-user/ \ && git clone ${GIT_REPOSITORY_ORIGIN} # setup contents cp /home/ec2-user/${GIT_REPOSITORY_NAME}/* /var/www/html/
「ユーザーデータファイル名"${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash"が存在する。」ことを確認します。
コマンド: ls ${FILE_USER_DATA} 結果(例): ${HOME}/environment/conf-handson-cli-ec2-eip/handson-cli-ec2-eip-httpd-userdata.bash
ls ${FILE_USER_DATA}