ハンズオン(簡易版): CFnテンプレート入門(EC2::VolumeAttachment)

事前作業2.3. ユーザーデータの作成 (sshd: handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata)

手順の目的 [why]

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

設定値の指定

設定値の指定

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

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

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

変数の設定:

DIR_USER_DATA="${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment"

ディレクトリが存在することを確認します。

コマンド:

ls -d ${DIR_USER_DATA}

結果(例:存在する場合):

${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment

存在しない場合は作成します。

コマンド:

mkdir -p ${DIR_USER_DATA}

結果(例):

(出力なし)

2. ユーザーデータファイル名の指定

ユーザーデータファイル名を指定します。

変数の設定:

USER_DATA_NAME='handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata'

変数の設定:

FILE_USER_DATA="${DIR_USER_DATA}/${USER_DATA_NAME}.bash" \
  && echo ${FILE_USER_DATA}

結果(例):

${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata.bash

3. SSHポート番号の指定

SSHポート番号を指定します。

変数の設定:

PORT_SSHD='22022'

設定値の確認

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

変数の確認:

cat << END

  # 1. DIR_USER_DATA:"${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment"
       DIR_USER_DATA="${DIR_USER_DATA}"
  # 2. FILE_USER_DATA:"${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata.bash"
       FILE_USER_DATA="${FILE_USER_DATA}"
  # 3. PORT_SSHD:"22022"
       PORT_SSHD="${PORT_SSHD}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

ユーザーデータファイルを作成します。

変数の確認:

cat << END

  # FILE_USER_DATA:"${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata.bash"
    FILE_USER_DATA="${FILE_USER_DATA}"
  # PORT_SSHD:"22022"
    PORT_SSHD="${PORT_SSHD}"

END

コマンド:

cat << EOF1 > ${FILE_USER_DATA}
#!/bin/bash

# configure sshd
cat << EOF >> /etc/ssh/sshd_config

Port ${PORT_SSHD}
EOF
systemctl restart sshd.service


# yum
yum update -y
EOF1

cat ${FILE_USER_DATA}

結果(例):

#!/bin/bash

# configure sshd
cat << EOF >> /etc/ssh/sshd_config

Port 22022
EOF
systemctl restart sshd.service


# yum
yum update -y

完了確認

「ユーザーデータファイル名"${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata.bash"が存在する。」ことを確認します。

コマンド:

ls ${FILE_USER_DATA}

結果(例):

${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment-ssh_port-userdata.bash

手順の完了