EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編)

前回のUserData編に続き、達成したい目的は同じく下記のままで、

①(AWS Managed ADではない)ADに参加
②ホスト名を、自分がつけたNameタグの値に揃える

やり方をUserDataではなくもうちょっと柔軟なSystems Manager RunCommandを利用する方法を試していこうと思う。

Systems Managerを利用すると、もちろんできることの幅は非常に広がるのだが、その代わりSSMエージェントのインストールとインスタンスプロファイルの設定等、必要条件を満…


This content originally appeared on DEV Community and was authored by ryanc

前回のUserData編に続き、達成したい目的は同じく下記のままで、

①(AWS Managed ADではない)ADに参加
②ホスト名を、自分がつけたNameタグの値に揃える

やり方をUserDataではなくもうちょっと柔軟なSystems Manager RunCommandを利用する方法を試していこうと思う。

Systems Managerを利用すると、もちろんできることの幅は非常に広がるのだが、その代わりSSMエージェントのインストールとインスタンスプロファイルの設定等、必要条件を満たす必要はある(Amazon提供のAMIならエージェントは最初から入っているので楽)。



インスタンスプロファイルに必要なIAM権限と、シークレットマネージャーへのADユーザー認証情報の登録等は前回同様なので省略する。



Systems Managerの「ドキュメント」を開き、「Create Document」からCommand or sessionタイプを選択する。

image



ドキュメントの詳細はこんな感じで作成する。

image

ドキュメントタイプはコマンドドキュメントになる。



肝心なコマンドのコンテンツだが、前回のPowerShellスクリプトをそのまま流用して、大事そうなパラメータが指定できるようにだけ少し手を入れてYAML形式にしてみた。

---
schemaVersion: "2.2"
description: "Join AD and rename host with instance tag"
parameters:
  DomainName:
    type: "String"
    description: "参加するADドメインのDNS名"
  UserCredentialSecretID:
    type: "String"
    description: "AD参加に利用するユーザー認証情報を保持するSecrets ManagerシークレットID"
  HostnameTag:
    type: "String"
    description: "ホスト名を定義するタグ名(デフォルトはName)"
    default: "Name"
mainSteps:
- action: "aws:runPowerShellScript"
  name: "example"
  inputs:
    runCommand:
    - $secretManager = Get-SECSecretValue -SecretId {{UserCredentialSecretID}}
    - $secret = $secretManager.SecretString | ConvertFrom-Json
    - $username = $domainName + "\" + $secret.Account
    - $password = $secret.Password | ConvertTo-SecureString -AsPlainText -Force
    - $credential = New-Object System.Management.Automation.PSCredential($username,$password)
    - $instanceID = Get-EC2InstanceMetadata -Category InstanceId
    - $nameTag = Get-EC2Tag -Filter @{Name="resource-id";Value="$instanceID"},@{Name="key";Value="{{HostnameTag}}"}
    - $newName = $nameTag.Value
    - Add-Computer -DomainName "{{DomainName}}" -NewName "$newName" -Credential $credential -Passthru -Force -Restart

(パラメータ値は{{}}で囲む)



これで実際にRun Commandで実行する際には、こんな感じでパラメータを指定できるしEC2インスタンスの初回起動時じゃなくてもいつでも実行でき、たくさんのインスタンスに対しても一気に実行できるので一気に柔軟性が増す。

image

一々パラメータ設定が面倒であれば、デフォルト値をセットしてしまえば良し。



実際にやってみたが問題なく動作した。

image

今回は以上。次Chef好き向けにOpsWorksでやってみようかと思う。



※イラストはこちらからご提供いただきました:
Computer vector created by macrovector - www.freepik.com


This content originally appeared on DEV Community and was authored by ryanc


Print Share Comment Cite Upload Translate Updates
APA MLA
" » EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編)." ryanc | Sciencx - Wednesday April 21, 2021, https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/
HARVARD
ryanc | Sciencx Wednesday April 21, 2021 » EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編)., viewed ,<https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/>
VANCOUVER
ryanc | Sciencx - » EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/
CHICAGO
" » EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編)." ryanc | Sciencx - Accessed . https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/
IEEE
" » EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編)." ryanc | Sciencx [Online]. Available: https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/. [Accessed: ]
rf:citation
» EC2インスタンス作成時にホスト名変更&AD参加する(RunCommand編) | ryanc | Sciencx | https://www.scien.cx/2021/04/21/ec2%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e4%bd%9c%e6%88%90%e6%99%82%e3%81%ab%e3%83%9b%e3%82%b9%e3%83%88%e5%90%8d%e5%a4%89%e6%9b%b4%ef%bc%86ad%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b-2/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.