3.1. Redmine用データベース接続情報ファイルの作成¶
パラメータ設定¶
作業に必要なモノ・情報 [resource]¶
リソース1: 一時ファイル用ディレクトリ
- 今回は"${HOME}/tmp"を一時ファイル用ディレクトリとします。
ディレクトリが存在することを確認します。
コマンド:
ls -d ${HOME}/tmp
結果(例:存在する場合):
${HOME}/tmp
ディレクトリが存在しない場合は作成します。
コマンド:
mkdir -p ${HOME}/tmp
パラメータの指定¶
タスクの実施¶
1. 前処理¶
1.1. 状態確認に必要な情報の取得¶
Redmine用データベース接続情報ファイル名の指定
Redmine用データベース接続情報ファイル名を指定します。
変数の設定:
FILE_DATA="${DIR_TMP}/${CONNECTION_TARGET}" \ && echo ${FILE_DATA}
結果(例):
${HOME}/tmp/dbinstance-handson-cli-ap-northeast-1-database-yml
1.2. 処理対象の状態確認¶
一時ファイル用ディレクトリの存在確認
コマンド:
ls -d ${DIR_TMP}
結果(例):
${HOME}/tmp
Redmine用データベース接続情報ファイルの不存在確認
コマンド:
! ls ${FILE_DATA}
結果(例):
ls: ${HOME}/tmp/dbinstance-handson-cli-ap-northeast-1-database-yml No such file or directory
1.3. 主処理に必要な情報の取得¶
データベースホスト名の取得
コマンド:
RDS_INSTANCE_ENDPOINT=$( \ aws rds describe-db-instances \ --db-instance-identifier ${RDS_INSTANCE_IDENT} \ --query 'DBInstances[].Endpoint.Address' \ --output text \ ) \ && echo ${RDS_INSTANCE_ENDPOINT}
結果(例):
dbinstance-handson-cli.xxxxxxxxxxxx.<リージョン名>.rds.amazonaws.com
2. 本処理¶
Redmine用データベース接続情報ファイルの作成¶
変数の確認:
cat << ETX # FILE_DATA:"${HOME}/tmp/dbinstance-handson-cli-ap-northeast-1-database-yml" FILE_DATA="${FILE_DATA}" # RDS_INSTANCE_ENDPOINT:"dbinstance-handson-cli.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com" RDS_INSTANCE_ENDPOINT="${RDS_INSTANCE_ENDPOINT}" # PSQL_DBNAME:"redmine" PSQL_DBNAME="${PSQL_DBNAME}" # PSQL_USERNAME:"redmine" PSQL_USERNAME="${PSQL_USERNAME} # PSQL_USERPASS:"#redmine123" PSQL_USERPASS="${PSQL_USERPASS}" ETX
コマンド:
cat << EOF > ${FILE_DATA} production: adapter: postgresql database: ${PSQL_DBNAME} host: ${RDS_INSTANCE_ENDPOINT} username: ${PSQL_USERNAME} password: "${PSQL_USERPASS}" EOF cat ${FILE_DATA}
結果(例):
production: adapter: postgresql database: redmine host: dbinstance-handson-cli.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com username: redmine password: "#redmine123"