ハンズオン(簡易版): EC2基礎 (EIP)

事前作業2.1. ユーザーデータの作成 (httpd: handson-cli-ec2-eip-httpd-userdata)

手順の目的 [why]

ユーザーデータ名"handson-cli-ec2-eip-httpd-userdata"のファイルを作成します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

1. ユーザーデータ用ディレクトリの指定

ユーザーデータ用ディレクトリを指定します。

変数の設定:

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}

結果(例):

(出力なし)

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

設定値の確認

各変数に正しい設定値が格納されていることを確認しながら保存します。

変数の確認:

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/

完了確認

「ユーザーデータファイル名"${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

手順の完了