https://github.com/ot-nemoto/cloudformation-openam-template
https://github.com/ot-nemoto/cloudformation-openam-template
cloudformation-template
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ot-nemoto/cloudformation-openam-template
- Owner: ot-nemoto
- Created: 2019-02-24T12:01:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-04-08T16:11:33.000Z (about 7 years ago)
- Last Synced: 2025-10-09T13:34:18.286Z (8 months ago)
- Topics: cloudformation-template
- Size: 16.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cloudformation-openam-template
## OpenAM
### 前提条件
- **aws-cli** がインストールされ、プロファイルの設定がされていること
- HostedZoneに **ドメイン** が登録されていること
- 対象のRegionに **キーペア** が作成されていること
- 実行するIAMユーザに十分な権限があること
- OpenAM
- Deployする場合は[ForgeRock](https://backstage.forgerock.com/downloads/browse/am/archive/productId:openam)からダウンロードします(**要アカウント登録**)
- ダウンロード可能な場所に配置して下さい
- 以下の手順でS3へパブリックな環境を構築することも可能です(`OpenAM-13.0.0.war`がカレントにあること)
```sh
# Warを配置するS3バケットを作成
aws cloudformation create-stack \
--stack-name public-bucket \
--template-body file://public-bucket-template.yml
# バケット名を取得
BUCKET_NAME=$(aws cloudformation describe-stacks \
--stack-name public-bucket \
--query 'Stacks[].Outputs[?OutputKey==`BucketName`].OutputValue' \
--output text)
echo ${BUCKET_NAME}
#
# OpenAMのwarファイルをS3にアップロード
aws s3 cp OpenAM-13.0.0.war s3://${BUCKET_NAME}/
# アップロードしたWarファイルのURIを取得
DONWLOD_URI=$(aws cloudformation describe-stacks \
--stack-name public-bucket \
--query 'Stacks[].Outputs[?OutputKey==`DownloadUri`].OutputValue' \
--output text)
echo ${DONWLOD_URI}
#
```
### 構築手順
- 環境変数を設定
- 作成済み(作成した)キーペアのキー名
- Route53に登録済みのHostedZone名
- OpenAMがダウンロード可能なURI
```sh
# 例)
KEY_NAME=openam-key
HOSTED_ZONE_NAME=example.com.
OPENAM_WAR_URI=${DONWLOD_URI}/OpenAM-13.0.0.war
```
- 環境構築
```sh
aws cloudformation create-stack \
--stack-name openam \
--capabilities CAPABILITY_IAM \
--parameters ParameterKey=KeyName,ParameterValue=${KEY_NAME} \
ParameterKey=HostedZoneName,ParameterValue=${HOSTED_ZONE_NAME} \
ParameterKey=OpenamWarUri,ParameterValue=${OPENAM_WAR_URI} \
--template-body file://openam-template.yml
```
- OpenAMのURI取得
```sh
DOMAIN=$(aws cloudformation describe-stacks \
--stack-name openam \
--query 'Stacks[].Outputs[?OutputKey==`PublicDns`].OutputValue' \
--output text)
echo http://${DOMAIN}/openam
#
```
### Parameters
|Name|Type|Default|Required|
|--|--|--|--|
|ProjectName|String|openam|*No*|
|VpcCIDR|String|10.100.0.0/16|*No*|
|PublicSubnet1CIDR|String|10.100.0.0/24|*No*|
|PublicSubnet2CIDR|String|10.100.1.0/24|*No*|
|DeveloperCIDR|String|0.0.0.0/0|*No*|
|InstanceType|String|t2.micro|*No*|
|KeyName|AWS::EC2::KeyPair::KeyName|-|*Yes*|
|HostedZoneName|String|-|*Yes*|
|OpenamWarUri|String|-|*Yes*|
### Outputs
|Key|ExportName|Description|
|--|--|--|
|OpsWorksInstanceProfileArn|\-opsworks-instance-profile-arn|インスタンスプロファイルArn|
|OpsWorksServiceRoleArn|\-opsworks-service-role-arn|OpsWorksのサービスロールArn|
|PublicDns|\-public-dns|ドメイン|
|PublicIp|\-public-ip|パブリックIPアドレス|
|PublicSubnet1|\-public-subnet-1|パブリックサブネットID
(OpenAMが配置されているサブネット)|
|PublicSubnet2|\-public-subnet-2|パブリックサブネットID
(OpenDJも構築する場合はこのIPを利用)|
|SecurityGroup|\-security-group|セキュリティグループID|
|Vpc|\-vpc|VPC ID|
## OpenDJ
### 前提条件
- OpenAMが上記スタックで構築されていること
- OpenDJ
- Deployする場合はForgeRockからダウンロードします(要アカウント登録)
- ダウンロード可能な場所に配置して下さい
- 以下の手順でS3へパブリックな環境を構築することも可能です(`opendj-3.0.0-1.noarch.rpm`がカレントにあること)
```sh
# OpenDJのrpmファイルをS3にアップロード
aws s3 cp opendj-3.0.0-1.noarch.rpm s3://${BUCKET_NAME}/
DONWLOD_URI=$(aws cloudformation describe-stacks \
--stack-name public-bucket \
--query 'Stacks[].Outputs[?OutputKey==`DownloadUri`].OutputValue' \
--output text)
echo ${DONWLOD_URI}
```
### 環境構築
- 環境変数を設定
- 作成済み(作成した)キーペアのキー名
- Route53に登録済みのHostedZone名
- OpenDJがダウンロード可能なURI
- OpenDJのルートパスワード
- OpenDJのベースドメイン名
```sh
# 例)
KEY_NAME=openam-key
HOSTED_ZONE_NAME=example.com.
OPENDJ_RPM_URI=${DONWLOD_URI}/opendj-3.0.0-1.noarch.rpm
ROOT_PW=secret
BASE_DN=dc=example\\\,dc=com
```
- 環境構築
```sh
aws cloudformation create-stack \
--stack-name opendj \
--capabilities CAPABILITY_IAM \
--parameters ParameterKey=KeyName,ParameterValue=${KEY_NAME} \
ParameterKey=HostedZoneName,ParameterValue=${HOSTED_ZONE_NAME} \
ParameterKey=OpendjRpmUri,ParameterValue=${OPENDJ_RPM_URI} \
ParameterKey=RootPw,ParameterValue="${ROOT_PW}" \
ParameterKey=BaseDn,ParameterValue="${BASE_DN}" \
--template-body file://opendj-template.yml
```
### Parameters
|Name|Type|Default|Required|
|--|--|--|--|
|ProjectName|String|opendj|*No*|
|OpenamStackName|String|openam|*No*|
|DeveloperCIDR|String|0.0.0.0/0|*No*|
|InstanceType|String|t2.micro|*No*|
|KeyName|AWS::EC2::KeyPair::KeyName|-|*Yes*|
|HostedZoneName|String|-|*Yes*|
|OpendjRpmUri|String|-|*Yes*|
|RootPw|String|secret|*No*|
|BaseDn|String|dc=openam,dc=forgerock,dc=org|*No*|
### Outputs
|Key|ExportName|Description|
|--|--|--|
|PublicDns|\-public-dns|ドメイン|
|PublicIp|\-public-ip|パブリックIPアドレス|
|LDAPServer|-|LDAPサーバー|
|LDAPBindDN|-|LDAPバインドDN|
|LDAPBindPW|-|LDAPバインドパスワード|
|LDAPBindPW|-|LDAP組織DN|