##関連リンク
Qiita記事
・Exastro IT Automationインストール(v1.5.0)
・Exastro IT Automation の Cloud System テンプレート(AWS版)を動かしてみた
ITAコミュニティサイト
・Exastro IT Automation コミュニティサイト
・CSテンプレート 1st-Model オートスケーリングWebシステム(AWS)導入手順
・CSテンプレート 1st-Model オートスケーリングWebシステム(AWS)概要
・CSテンプレート GitHubリリースページ
・ITA_利用手順マニュアル エクスポート/インポート
・ITA_利用手順マニュアル Ansible-driver
#はじめに
Cloud Systemテンプレート(以下CSテンプレートと表記)は、「設計済みクラウドシステムモデルのIaC(Infrastructure as a Code)」で「運用管理やセキュリテイなど運用上必須の機能が構築済みであることが特徴」とのことです。
Exastro IT Automation(以下ITAと表記)にCSテンプレートを組み込むことで、パラメータ調整と実行の2アクションでクラウドサービス上にシステムを提供することが可能となるようです。
ITAのエクスポート/インポート機能を使って、ITAにCSテンプレートを組み込むことができるパッケージファイルがGitHUBのリリースページにて公開されていました。
CSテンプレートの1st-Model(AWS版)ではITAからAWS上にWebシステムを自動作成できるようなので、
今回はCSテンプレートの導入(インポート)と、AWS環境の準備、実行に必要なパラメタの登録までを実行していきます。
##今回紹介するシナリオ
本記事は以下のシナリオで進めていきます。
事前準備と導入の手順についてはCSテンプレート 1st-Model オートスケーリングWebシステム(AWS)導入手順マニュアルを参照しました。
【準備/導入編】1.ITAのインストール
【準備/導入編】2.CSテンプレートのインポート
【準備/導入編】3.AWS環境の準備
【準備/導入編】4.Teams連携通知の準備
【仕込編】1.機器一覧のホスト情報登録
【仕込編】2.プロキシ情報の登録
【仕込編】3.Teams連携通知の登録
【仕込編】4.共通パラメータのシステム名変更
【仕込編】5.AWSアカウント情報登録
【仕込編】6.オートスケール用パラメータの登録・更新
#作業環境
今回は以下の環境に導入してみました。
●サーバ/クライアント環境
・サーバOS : CentOS 7.8
・Exastro IT Automation v1.5.0
・クライアント環境 : Windows 10
・ブラウザ : Google Chrome
●AWS環境
・リージョン:ap-northeast-1 アジアパシフィック (東京)
ITAを導入するサーバはオンプレ上でも、AWS上のインスタンスでの構築でもOKですが、ITA導入サーバからAWSに接続できるインターネット環境とhttp(https)/sshの通信許可が必要です。
またCSテンプレートは ITA v1.4.1 以上のものに対応していますが、v1.5.0 に導入しました。
現バージョンにおいてはインポートの際に既存のITAのデータを上書きするので、新規のITAサーバにインポートすることをお勧めします。
#【準備/導入編】1.ITAのインストール
最初にCentOS上にITA v1.5.0をインストールします、インストール方法については以下の記事を参照しました。
参考Qiita記事 : Exastro IT Automationインストール(v1.5.0)
CSテンプレート導入手順に記載されている通り、インストーラのデフォルト機能(ドライバー)でインストールします。
インストール後、手順に従い初期パスワードでのログオンとパスワード変更し、以下のメインメニューが表示されればインストールOKです。
#【準備/導入編】2.CSテンプレートのインポート
###2.1 CSテンプレートのダウンロード
CSテンプレート GitHub からパッケージファイルをダウンロードします。
ダウンロードするファイル名は「cloud-system-template-aws-ce-1.0.0-exastro-1.5.0.kym」です。
###2.2 CSテンプレートのインポート
1. 「エクスポート/インポート」>「メニューインポート」を選択、「ファイルを選択」でダウンロードしたパッケージファイルを開き、アップロードします。
2.ファイルのアップロードが完了したらすべてのメニューを選択して、画面最下部の「インポート(廃止を除く)」をクリック。
3.「エクスポート/インポート管理」>「フィルタ」を押下し、インポートが完了しているか確認します。
4.CSテンプレートのインポートが完了している場合、メインメニューは以下のように表示されます。
###2.3 ITA管理者ユーザのパスワード変更
導入後ITAユーザのパスワードはCSテンプレートデフォルトになっているので更新する必要があります。
1.「管理コンソール」>「ユーザ管理」を選択。
2. ログインID「adninistrator」の「更新」をクリック。
3.「ログインPW」に任意のパスワードを入力して「更新」を押下
4.同様の手順で「aws-admin」「infra-admin」「infra-user」のパスワードも変更してください。
※デフォルトパスワードは全て「password」となっていますので、適宜変更します。
一度ログアウトして変更したパスワードでログインできれば、本作業は完了です。
#【準備/導入編】3.AWS環境の準備
AWSの利用にあたりアカウント契約が必要です(個人・法人どちらの契約でも利用可能)
CSテンプレートでは主に以下AWSサービスを利用します。
【利用AWSサービス】
- IAM
- Certificate Manager
- CloudFormation
- CloudWatch
- EC2
- Key Management Service
- S3
- SNS(Simple Notification Service)
- GuardDuty ※今回の記事では利用しない
EC2やS3などのAWSのリソース利用にあたり月額の費用が発生するので、普段利用しない人は、請求額や使用状況レポートの確認や、不正に利用されないようにアカウント管理やセキュリティに注意しましょう。
アカウントが用意できたら導入手順を参考に、AWS操作用に以下の環境準備を行います。
・CSテンプレート用システム管理者のIAMユーザー準備
・EC2 Auto Scaling利用の環境準備
###3.1 IAMユーザー準備(システム管理者)
IAMは「Identity and Access Management」の略で、ユーザやグループの作成やAWSリソースへのアクセス権限設定の管理を行います。
CSテンプレートの初期設定用に、利用するAWSの「アカウントID」と、システム管理者用に以下のIAMポリシーをアタッチしたIAMユーザーの「アクセスキーID」「シークレットアクセスキー」の情報を用意します。
- IAMFullAccess
- AWSCloudFormationFullAccess
`AWSの「アカウントID」の確認方法はこちらを参照`
今回IAMユーザーについてはCSテンプレートの導入用にIAMユーザーを新規作成します。
CSテンプレートをシステム管理者のみで運用する場合は、上記に加え以下のポリシーも必要なようですが、
今回は本来のロールごとにIAMユーザーを作成してみるので省略します。
- ec2:DescribeInstances
- elasticloadbalancing:Describe*
- s3:*
ITAのユーザとAWSのIAMユーザーのロール(用途)については、
CSテンプレート導入手順の「1.3 ITAユーザー/IAMユーザーの役割と運用方法」を参考にします。
####3.1.1 IAMユーザー追加とアクセス情報の取得
AWSコンソールのサービス一覧からIAMを選択します。
`目的のAWSサービスが見つからない場合の検索方法`
- AMI ID
- EC2 キーペア
- ELBのサーバ証明書
AWSのリージョンはCSテンプレートにおいて、以下(表1参照)が動作確認済みとして初期登録されていますが、ユーザカスタマイズによりその他のリージョンの利用も可能かと思われます。今回は東京リージョンのEC2にて構築するサーバ用のキーペアとELB用サーバ証明書のインポートを行います。
【表1.CSテンプレート初期登録済のリージョン】
コード | 名前 | CSテンプレートの初期サンプル |
---|---|---|
ap-northeast-1 | アジアパシフィック(東京) | サンプルのオペレーション「環境A」で指定 |
ap-southeast-1 | アジアパシフィック(シンガポール) | |
ap-southeast-2 | アジアパシフィック(シドニー) | |
us-east-1 | 米国東部(バージニア北部) | サンプルのオペレーション「環境B」で指定 |
####3.2.1 AMI ID の取得
オートスケールWebサーバのOSイメージとして利用したいAMI IDを確認します。
利用したいLinuxサーバイメージのインスタンスでテンプレートを作り、
マイAMIに登録し、そのAMI IDを取得します。
●イメージの作成について
「EC2」>「インスタンス」で対象を右クリック「イメージ」>「イメージの作成」
参考:Amazon EC2 インスタンスからの AMI の作成
####3.2.2 EC2 キーペアの作成
1.「EC2」>「ネットワーク&セキュリティ」>「キーペア」にて「キーペアを作成」を押下
2. 名前に「任意のキーペア名」を入力、ファイル形式は「pem」を選択して「キーペアを作成」を押下。
3.キーペア作成を確認し、「キーペア名」とダウンロードされた「キーペア(pemファイル)」を保管する。
※Webサーバ用と踏み台サーバ用に認証鍵を分ける場合は上記の手順を繰り返し2つ準備します。
####3.2.3 ELB用サーバ証明書の登録
オートスケールWebサーバへの負荷分散に利用するELB (Elastic Load Balancing) の構築用に、HTTPS通信に利用するSSLサーバ証明をインポートし、リソースネーム(ARN)を取得します。
1.秘密鍵・サーバ証明書の作成とダウンロード
今回はテスト用に自己証明書を作成します、ITA導入用のCentOS 7.8のコンソールにて、以下のコマンドを例に、
秘密鍵ファイル(*.key)とサーバ証明書(*.crt)を作成し、端末にダウンロードまたはcatで中身を確認します。
(OpenSSLがインストールされたLinuxであればどこでも作成可。 ※OpenSSL 1.0.2で確認)
# mkdir /root/cert
# cd /root/cert
# openssl genrsa 2048 > cs-temp.sample.com.key
# openssl req -new -x509 -days 3650 -key cs-temp.sample.com.key -sha256 -out cs-temp.sample.com.crt
### 格納ディレクトリ作成
# mkdir /root/cert
# cd /root/cert
### 秘密鍵作成
# openssl genrsa 2048 > cs-temp.sample.com.key
Generating RSA private key, 2048 bit long modulus
.............+++
.............................+++
e is 65537 (0x10001)
### 証明書リクエスト作成 & 自己証明書発行
openssl req -new -x509 -days 3650 -key cs-temp.sample.com.key -sha256 -out cs-temp.sample.com.crt
(~省略~)
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:cs-temp.sample.com
Email Address []:
#
### 以下のファイルが作成。ダウンロードまたは表示してテキストをコピーする(BEGIN行・END行を含む)
# ls -l
~
-rw-r--r-- 1 root root 1298 10月 xx 18:22 cs-temp.sample.com.crt
-rw-r--r-- 1 root root 1679 10月 xx 18:21 cs-temp.sample.com.key
# cat cs-temp.sample.com.crt
-----BEGIN CERTIFICATE-----
(~ 証明書の内容が表示 ~)
-----END CERTIFICATE-----
#
# cat cs-temp.sample.com.key
-----BEGIN RSA PRIVATE KEY-----
(~ 秘密鍵の内容が表示 ~)
-----END RSA PRIVATE KEY-----
#
2.Certificate Manager - 証明書のインポート(登録)とARN取得
(1)サービス「Certificate Manager」>「証明書」>「証明書のインポート」を押下
(※初めて作成する場合、「Certificate Manager」>「証明書のプロビジョニング」の「今すぐ始める」より)
(2)「証明書のインポート」画面にて以下を実施
上記「1」の手順で作成した証明書をインポートします(BEGIN行・END行を含めテキストで貼り付け)
① 「証明書本文」にサーバ証明書(*.crt)のテキスト内容を貼り付ける。
② 「証明書のプライベートキー」に秘密鍵ファイル(*.key)のテキスト内容を貼り付ける。
③ 「次へ」を押下
(3)インポート実施とリソース名(ARN)の取得
・「タグを追加」画面:設定は任意。右下の「レビューとインポート」を押下
・「レビューとインポート」画面で内容を確認。右下の「インポート」を押下
・「証明書」画面にて、① 作成した証明書を選択し、②証明書のARN名をテキストで保存する。
#【準備/導入編】4.Teams連携通知の準備
MicrosoftのTeamsを利用している場合、チャネルのコネクタ(Incoming Webhook)を用意することで、
ITAのCSテンプレートのコンダクター実行時に「処理完了」などの通知を飛ばすことができます。
以下の記事を参考に通知したいチャネルの「Incoming Webhook」を構成し、URLを取得します。
参考:Microsoft Teamsにメッセージを飛ばす
【簡易手順】
1.Teamsにて通知対象チャネルを右クリック 、「コネクタ」を選択。
2.「Incoming Webhook」を選択する。
3.名前を入力し作成 ⇒ 構成されたWebhockのURLをコピーし保管する。
#【仕込編】1.機器一覧のホスト情報登録
今回はITA導入サーバ自身の情報として、rootユーザの認証情報を登録します。
1.「基本コンソール」>「機器一覧」>「フィルタ」>登録済みのホスト「exastro-it-automation」の「更新」をクリック。
2.rootユーザの認証情報(※1)を入力し、「更新」をクリック。
※1 認証方式により入力手順が異なる、rootユーザの認証方式ごとに下記手順を参照。
・パスワード認証の場合
「ログインパスワード」を入力し、「認証方式」 ⇒ 「パスワード認証」、「管理」 ⇒ 「●」を選択。
・鍵認証の場合
「認証方式」 ⇒ 「鍵認証」「管理」 ⇒ 「●」を選択し、「ssh認証鍵ファイル」の「ファイルを選択」
を押下後、ssh認証鍵ファイルを選択して「事前アップロード」をクリック。アップロードが完了したこ
とを確認。
#【仕込編】2.プロキシ情報の登録
ITA導入サーバの外部通信がプロキシサーバ経由となる環境の場合は、CSテンプレートで用意されたグローバル変数にプロキシサーバの情報を設定することで、CSテンプレートの自動実行の通信(https/ssh)を設定したプロキシサーバ経由で行うことが可能です。
1.「Annsible共通」>「グローバル変数管理」>「フィルタ」>「更新」をクリック
2.「具体値」にプロキシサーバの情報を入力して更新をクリック。
#【仕込編】3.Teams連携通知の登録
###3.1 Teams連携管理の登録
「【準備/導入編】4.Teams連携通知の準備」で取得した「Incoming Webhook」のURLを入力します。
1.「Teams連携管理」>「通知設定」>「登録」>「登録開始」をクリック
2.「ホスト名」「オペレーション」「通知先Webhook」を入力して「登録」をクリック
###3.2 Conductorの編集(スキップ状態の解除)
Teams連携通知はデフォルトでConductorの実行状態がスキップ状態となっているため、
通知するためにはConductorクラスを編集し、スキップ状態を解除します。
1.「Conductor」>「Conductorクラス一覧」>「フィルタ」> Teamsへ通知させたいConductorの「詳細」>
移動先画面下部の「編集」をクリック
2.「Teams正常終了通知」を押下して画面右側の「Default skip」のチェックを解除、
「Teams異常終了通知」を押下して画面右側の「Default skip」のチェックを解除して、画面下部の「更新」をクリック
#【仕込編】4.共通パラメータのシステム名変更
共通パラメータのシステム名の変更を行います。
(1)「パラメータ管理」>「共通パラメータ」>「フィルタ」をクリック
(2)「一覧/更新」から「環境A」>「更新」をクリック。
(3)「システム名」を任意の内容に変更し、「更新」をクリック。
#【仕込編】5.AWSアカウント情報登録
###5.1 システム管理者アクセスキーの登録
1.「AWSアクセスキー管理」>「システム管理者」>「登録」>「登録開始」をクリック
2.システム管理者アクセスキーのパラメータを登録します。
「ホスト名」 ⇒ 「exastro-it-automation」、「オペレーション」 ⇒ 「環境A」 を選択し、
「アカウントID」と「アクセスキー」「シークレットキー」に、「【準備/導入編】3.AWS環境の準備」にて作成、
確認したAWSのアカウントIDとIAMユーザの情報を入力して登録をクリック。
###5.2 AWS管理者のIAMユーザー作成と登録
CSテンプレートでは、操作権限をIAMユーザーとそれに紐づいたITAユーザーごとに分けての運用をポリシーとしており、それに従い各ロールごとにIAMユーザーの作成とアクセスキーの登録を行います。
1.Conductor実行によるIAMユーザー作成
`実行前にAWS管理者パラメータのユーザ名/グループ名(デフォルト値)を変更したい場合はこちらを参照`
(1)「パラメータ管理」>「AWS管理者パラメータ」>「フィルタ」>「環境A」の「更新」をクリック。 (2)「ユーザー名」と「グループ名」を任意の内容に変更し、「更新」をクリック。 ![qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/761075/95f74ca7-7dbb-4564-a891-656c0562f3cd.png)(1)「Conductor」>「Conductor作業実行」をクリック
(2)「Conductor[一覧]」の「AWS管理者(構築/更新)」を選択し、「オペレーション[一覧]」から
「環境A」のオペレーションを選択して、画面最下部の「実行」をクリック
(3)実行開始後、正常終了することを確認する。
2.IAMアクセスキーの取得
(1)AWSマネジメントコンソールにログインする。
(2)「IAM」>「アクセス管理」>「ユーザー」画面にて、
新規に払い出したAWS管理者ユーザー(cloud-system-template-aws-admin-xxx)を押下。
(3)「ユーザー」>「概要」>「認証情報」タブ>「アクセスキーの作成」をクリック
(4) 作成された「アクセスキー」の情報を取得する。「アクセスキーID」「シークレットキー」を取得する。
3.AWS管理者のアクセスキーの登録
上記**「5.1 システム管理者アクセスキーの登録」**と同様にアクセスキーの登録を行う。
(1)「AWSアクセスキー管理」>「AWS管理者」>「登録」>「登録開始」をクリック
(2) 以下のパラメタを入力して「登録」をクリック
「ホスト名」 ⇒ 「exastro-it-automation」
「オペレーション」 ⇒ 「環境A」
「アカウントID」は「4.1」と同じ。
「アクセスキー」「シークレットキー」に、上記手順で作成・確認したAWS管理者のIAMユーザの情報を入力。
###5.3 インフラ管理者&インフラユーザーのIAMユーザ作成と登録
上記**「5.2 AWS管理者のIAMユーザ作成と登録」**と同様にアクセスキーの登録を行う(詳細手順は省略)
※本作業は、ITAのAWS管理者ユーザ「aws-admin」にて実施します(今回はITA再ログインを省略)
1.Conductor実行によるIAMユーザ作成
Conductorクラス「インフラ管理者&インフラユーザー(構築/更新)」を実行する。
`実行前にインフラ管理者・ユーザのユーザ名/グループ名(デフォルト値)を変更したい場合はこちらを参照`
(1)「パラメータ管理」>「インフラ管理者&インフラユーザーパラメータ」>「フィルタ」 >「環境A」の「更新」をクリック。 (2)「ユーザー名/インフラ管理者」「グループ名/インフラ管理者」 「ユーザー名/インフラユーザー」「グループ名/インフラユーザー」を任意の内容に変更し、 「更新」をクリック。 ![qiita3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/761075/c8c715b0-6730-ca3b-56be-d427f638c64a.png)2.IAMアクセスキーの取得
「IAM」>「アクセス管理」>「ユーザー」画面にて、作成したの2ユーザのアクセスキーを取得する。
①インフラ管理者 :cloud-system-template-infra-admin-xxx
②インフラユーザー:cloud-system-template-infra-user-xxx
3.アクセスキーの登録
上記2ユーザのアクセスキーを、
ITAの「AWSアクセスキー管理」の「インフラ管理者」と「インフラユーザー」メニューにて
それぞれ登録する。
#【仕込編】6.オートスケール用パラメータの登録・更新
###6.1 AutoScaleパラメータへの登録
AutoScale用のWebサーバ/ELB構築用のパラメータ値を入力します。
※本作業は、ITAのインフラ管理者ユーザ「infra-admin」にて実施します (今回はITA再ログインを省略)
1.「パラメータ管理」>「AutoScaleパラメータ」>「フィルタ」>「更新」をクリック。
2.「AMI」「キーペア名/Webサーバ名」「ELB証明書」を入力、
今回は検証用に「最小インスタンス数」を「2」に変更し「更新」をクリック。
「【準備/導入編】3.AWS環境」の「3.2 EC2 Auto Scaling利用の環境準備」で用意した以下の情報を入力。
パラメタ | 入力内容 | 備考 |
---|---|---|
AMI | ami-xxxxxxxxxxxxxxxxx | 利用する AMI ID |
キーペア名/Webサーバ名 | キーペア名(Webサーバ用) | WebSV用に作成したキーペア名 |
最小インスタンス数 | 4 ⇒ 2 | テストシナリオ用にパラメタを変更 |
ELB証明書 | ELB用サーバ証明書のARN | インポートした証明書 |
###6.2 Bastionパラメータへの登録
踏み台サーバ構築用のパラメータ値を入力します。
1.「パラメータ管理」>「Bastionパラメータ」>「フィルタ」>「更新」をクリック。
2.「KeyName」「AMI」を入力して「更新」をクリック。
「【準備/導入編】3.AWS環境」の「3.2 EC2 Auto Scaling利用の環境準備」で用意した以下の情報を入力。
パラメタ | 入力内容 | 備考 |
---|---|---|
KeyName | キーペア名(踏み台サーバ用) | 踏み台SV用に作成したキーペア名 |
AMI | ami-xxxxxxxxxxxxxxxxx | 利用する AMI ID |
###6.3 キーペアファイルの登録
1.「Ansible共通」>「ファイル管理」>「CPF_SECRET_KEY_BASTION」の「更新」をクリック
2.「ファイルを選択」を押下して、「導入準備-AWS環境準備- ②EC2 Auto Scaling利用の環境準備」で
用意した踏み台サーバー用の「キーペア(pemファイル)」を選択して「事前アップロード」をクリック
3.アップロードが完了したら「更新」をクリック
同様の手順で「CPF_SECRET_KEY_WEB」へWebサーバー用の「キーペア(pemファイル)」を登録する。
以上、今回は、CSテンプレートの準備・導入と、AWS環境の準備、実行に必要なパラメタの登録を実施しました。
次回は、今回登録した設定をもとに、実際にAWSのオートスケジュールWebサーバの自動構築・更新を実施します。
##関連リンク
Qiita記事
・Exastro IT Automationインストール(v1.5.0)
・Exastro IT Automation の Cloud System テンプレート(AWS版)を動かしてみた
ITAコミュニティサイト
・Exastro IT Automation コミュニティサイト
・CSテンプレート 1st-Model オートスケーリングWebシステム(AWS)導入手順
・CSテンプレート 1st-Model オートスケーリングWebシステム(AWS)概要
・CSテンプレート GitHubリリースページ
・ITA_利用手順マニュアル エクスポート/インポート
・ITA_利用手順マニュアル Ansible-driver