CUIメインでWindows Active Directory Server on AWS EC2環境を実現する(DHCP Options Set指定&ドメインコントローラ2台目構築)

2015.07.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

当エントリは先日の下記エントリに関する続編です。1台目のActive DirectoryサーバをAWS EC2環境上に『なるべくGUIを使わずに』構築した後に、冗長構成を組み立てるための"2台目"となるActive Directoryサーバを1台目同様に『なるべくGUIを使わずに』構築する手順についてご紹介して行きたいと思います。

参考にしたエントリは主に以下の2本です。

目次

2台目のEC2インスタンス起動 by CloudFormation

まずは2台目のADサーバ作成。1台目を構築した際に利用したパラメータファイルを複製する形で2台目構築用のパラメータファイルを用意し、スタック名をAD2-Serverとして実行しました。

$ aws cloudformation create-stack \
  --stack-name AD2-Server \
  --template-body file:///Users/xxxxxxxx/IdeaProjects/cm-tableau-verification/cloudformation/templates/20_ec2_WindowsServer2012withDDrive.template.json \
  --parameters file:///Users/xxxxxxxx/IdeaProjects/cm-tableau-verification/cloudformation/parameters/20_ec2_WindowsServer2012withDDrive-ADServer2nd.parameter.json
{
    "StackId": "arn:aws:cloudformation:us-east-1:XXXXXXXXXXXX:stack/AD2-Server/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

2台目のEC2インスタンスに対する初期設定 by PowerShell

2台目のADサーバを構築する際のWindows EC2インスタンスが起動したら、ipconfig /allでプライベートIPアドレスを確認しておきます。(起動直後であれば、管理コンソール上でのプロパティ確認するでも良いかも知れません)

今回の手順で使用したEC2:ADサーバ2台目のプライベートIPアドレスは10.0.1.56でした。

PS C:\Users\Administrator> ipconfig /all
(前略)
   リンクローカル IPv6 アドレス. . . . .: fe80::81ff:b513:a998:cefd%21(優先)
   IPv4 アドレス . . . . . . . . . . . .: 10.0.1.56(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2015年7月7日 17:13:47
   リースの有効期限. . . . . . . . . . .: 2015年7月7日 18:13:47
   デフォルト ゲートウェイ . . . . . . .: 10.0.1.1
   DHCP サーバー . . . . . . . . . . . .: 10.0.1.1
(後略)

Windowsインスタンスの初期設定についてもサクッと済ませてしまいます。マシン名のみ前回のエントリと変えています。

## PowerShell実行ポリシーの変更(強制)
Set-ExecutionPolicy RemoteSigned -force
    
## AWSデフォルトリージョンの設定
Set-DefaultAWSRegion us-east-1
## コンピュータ名の変更(強制)
Rename-Computer -NewName "AD-SERVER2" -Force
## タイムゾーンを変更
tzutil.exe /s "Tokyo Standard Time"
    
## フォルダオプション(拡張子を表示する)
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -name "HideFileExt" -Value 0
   
## フォルダオプション(隠しファイル、隠しフォルダ、隠しドライブを表示する)
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -name "Hidden" -Value 1
   
## Windows ファイアウォールの無効化
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
   
## 追加: Firefoxのインストール
## make Directory for tools
mkdir C:tools
   
## Firefox Download & Install
Invoke-WebRequest -Uri "https://download.mozilla.org/?product=firefox-36.0-SSL&os=win&lang=ja" -OutFile C:toolsfirefox.exe
C:toolsfirefox.exe -ms
  
## Firefoxインストール完了を待つ
Start-Sleep -s 60
   
## OS再起動
Restart-Computer

そして1台目の環境についてもipconfig /allコマンドでプライベートIPアドレスを確認しておきます。今回の手順で使用したEC2:ADサーバ1台目のプライベートIPアドレスは10.0.0.133でした。

PS C:\Users\Administrator> ipconfig /all

Windows IP 構成

   ホスト名. . . . . . . . . . . . . . .: AD-SERVER1
   プライマリ DNS サフィックス . . . . .: cm.local
   ノード タイプ . . . . . . . . . . . .: ハイブリッド
   IP ルーティング有効 . . . . . . . . .: いいえ
   WINS プロキシ有効 . . . . . . . . . .: いいえ
   DNS サフィックス検索一覧. . . . . . .: us-east-1.ec2-utilities.amazonaws.com
                                          ec2-utilities.amazonaws.com
                                          ec2.internal
                                          compute-1.internal
                                          cm.local

イーサネット アダプター イーサネット 2:

   接続固有の DNS サフィックス . . . . .: ec2.internal
   説明. . . . . . . . . . . . . . . . .: Intel(R) 82599 Virtual Function
   物理アドレス. . . . . . . . . . . . .: 0E-B4-5F-33-64-33
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   リンクローカル IPv6 アドレス. . . . .: fe80::3137:efb5:1c06:1d95%15(優先)
   IPv4 アドレス . . . . . . . . . . . .: 10.0.0.133(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2015年7月7日 23:53:14
   リースの有効期限. . . . . . . . . . .: 2015年7月8日 1:23:13
   デフォルト ゲートウェイ . . . . . . .: 10.0.0.1
   DHCP サーバー . . . . . . . . . . . .: 10.0.0.1
   DHCPv6 IAID . . . . . . . . . . . . .: 353285215
   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-1D-1E-3E-01-0A-AB-95-80-CD-D5
   DNS サーバー. . . . . . . . . . . . .: ::1
                                          127.0.0.1
   NetBIOS over TCP/IP . . . . . . . . .: 有効

Tunnel adapter isatap.ec2.internal:

DHCPオプションの作成・VPCとの紐付け設定 by AWS CLI

1台目と2台目のActive DiretoryサーバのプライベートIPアドレスの情報を元に、DHCPオプションセットの指定を行います。下記エントリを含むシリーズでは終盤に展開されていた内容をここで設定する事で管理の利便性・効率を高めるのが狙いです。

AWS CLIコマンドを使い、DHCPオプションの作成を行います。DNSサーバ指定の箇所で1台目・2台目のADサーバのプライベートIPを指定しています。

$ aws ec2 create-dhcp-options \
  --dhcp-configuration Key=domain-name-servers,Values=10.0.0.133,10.0.1.56 Key=domain-name,Values=cm.local
{
    "DhcpOptions": {
        "DhcpConfigurations": [
            {
                "Values": [
                    {
                        "Value": "cm.local"
                    }
                ], 
                "Key": "domain-name"
            }, 
            {
                "Values": [
                    {
                        "Value": "10.0.0.133"
                    }, 
                    {
                        "Value": "10.0.1.56"
                    }
                ], 
                "Key": "domain-name-servers"
            }
        ], 
        "DhcpOptionsId": "dopt-5344b536"
    }
}
$

DHCPオプション作成後、aws ec2 create-tagsコマンドで利用性を高めるためにTagを付与しておきます。

$ aws ec2 create-tags \
  --resources dopt-5344b536 \
  --tags Key=Name,Value=cm.local

念の為、aws ec2 describe-dhcp-optionsコマンドで内容を確認してみます。

$ aws ec2 describe-dhcp-options --dhcp-options-ids dopt-5344b536
{
    "DhcpOptions": [
        {
            "Tags": [
                {
                    "Value": "cm.local", 
                    "Key": "Name"
                }
            ], 
            "DhcpConfigurations": [
                {
                    "Values": [
                        {
                            "Value": "cm.local"
                        }
                    ], 
                    "Key": "domain-name"
                }, 
                {
                    "Values": [
                        {
                            "Value": "10.0.0.133"
                        }, 
                        {
                            "Value": "10.0.1.56"
                        }
                    ], 
                    "Key": "domain-name-servers"
                }
            ], 
            "DhcpOptionsId": "dopt-5344b536"
        }
    ]
}
$

作成したDHCPオプションをVPCに紐付けます。aws ec2 associate-dhcp-optionsコマンドを使って設定。

$ aws ec2 associate-dhcp-options --dhcp-options-id dopt-5344b536 --vpc-id vpc-xxxxxxxx

設定したVPCに対し、DHCPオプションが設定されているかaws ec2 describe-vpcsコマンドで確認してみます。ちゃんと設定されていますね!

$ aws ec2 describe-vpcs --vpc-ids vpc-xxxxxxxx | jq '.Vpcs[0].DhcpOptionsId'
"dopt-5344b536"

ここまでの内容を管理コンソール上でも確認してみます。ちゃんと内容が反映されている事を確認出来ました。

build-active-directory-on-aws-23

build-active-directory-on-aws-24

ちなみに、この時点で下記の内容は特に何も設定されていませんでした。

build-active-directory-on-aws-25

ですが、ipconfig /allコマンドで内容を確認してみると、DHCPオプションの内容がちゃんと設定されている様です。

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator> ipconfig /all

Windows IP 構成

   ホスト名. . . . . . . . . . . . . . .: WIN-7E5IJC9TO96
   プライマリ DNS サフィックス . . . . .:
   ノード タイプ . . . . . . . . . . . .: ハイブリッド
   IP ルーティング有効 . . . . . . . . .: いいえ
   WINS プロキシ有効 . . . . . . . . . .: いいえ
   DNS サフィックス検索一覧. . . . . . .: us-east-1.ec2-utilities.amazonaws.com
                                          ec2-utilities.amazonaws.com
                                          ec2.internal
                                          compute-1.internal
                                          cm.local

イーサネット アダプター イーサネット 2:

   接続固有の DNS サフィックス . . . . .: cm.local
   説明. . . . . . . . . . . . . . . . .: Intel(R) 82599 Virtual Function
   物理アドレス. . . . . . . . . . . . .: 12-A4-7E-54-37-1F
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   リンクローカル IPv6 アドレス. . . . .: fe80::81ff:b513:a998:cefd%15(優先)
   IPv4 アドレス . . . . . . . . . . . .: 10.0.1.56(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2015年7月7日 17:51:25
   リースの有効期限. . . . . . . . . . .: 2015年7月7日 18:51:25
   デフォルト ゲートウェイ . . . . . . .: 10.0.1.1
   DHCP サーバー . . . . . . . . . . . .: 10.0.1.1
   DHCPv6 IAID . . . . . . . . . . . . .: 353543294
   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-1D-2C-BD-A0-0A-2E-00-59-20-2B
   DNS サーバー. . . . . . . . . . . . .: 10.0.0.133
                                          10.0.1.56
   NetBIOS over TCP/IP . . . . . . . . .: 有効

Tunnel adapter isatap.cm.local:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .: cm.local
   説明. . . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter
   物理アドレス. . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0
   DHCP 有効 . . . . . . . . . . . . . .: いいえ
   自動構成有効. . . . . . . . . . . . .: はい
PS C:\Users\Administrator>

2台目のWindowsインスタンスにActive Directoryをインストール&連携設定

Active Directory導入・設定に関するソフトウェア・ツールの導入は1台目と同じです。

## Active Directoryドメインサービスと管理ツールのインストール
Get-WindowsFeature AD-Domain-Services | Install-WindowsFeature
Get-WindowsFeature RSAT-ADDS | Install-WindowsFeature
  
## AD DS Deployment PowerShell Moduleのインストール
Import-Module ADDSDeployment
mkdir D:\Windows\NTDS
mkdir D:\Windows\SYSVOL

そしてドメインコントローラーの追加。ここは若干内容が1台目と異なっています。詳細なオプションは以下ドキュメント等を参考にしてください。また各種設定値は構築するAD環境に併せて適宜置き換えてください。

Install-ADDSDomainController `
  -NoGlobalCatalog:$false `
  -CreateDnsDelegation:$false `
  -Credential (Get-Credential) `
  -CriticalReplicationOnly:$false `
  -DatabasePath "D:\Windows\NTDS" `
  -DomainName "cm.local" `
  -InstallDns:$true `
  -LogPath "D:\Windows\NTDS" `
  -NoRebootOnCompletion:$false `
  -SiteName "Default-First-Site-Name" `
  -SysvolPath "D:\Windows\SYSVOL" `
  -Force:$true

コピペして実行。にログイン認証を聞かれるので、ユーザー名に『指定のドメイン\Administrator』、パスワードに『1台目のOSログインに用いたパスワード』を設定、OKを押下します。また、別途パスワード入力を聞かれるのでこの内容は1台目同様控えておいてください。

build-active-directory-on-aws-26

認証が無事済むと、Active Directoryのインストールや設定作業が始まります。

また、作業が完了するとOS再起動を促されますので再起動してください。

build-active-directory-on-aws-27

各種環境確認

OS再起動後、AD-SERVER2(ADサーバ2台目)に改めてアクセス。こちらは先程の設定同様、ドメイン\Administrator, 1台目のOS接続パスワードで入ります。

build-active-directory-on-aws-29

接続している端末は2台目ですね。

build-active-directory-on-aws-30

ログイン後、各種内容を確認してみます。ローカルサーバーの構成:

build-active-directory-on-aws-31

システムのプロパティより、フルコンピュータ名とドメイン名:

build-active-directory-on-aws-32

コンピュータ名とDNSサフィックス、NetBIOSコンピュータ名:

build-active-directory-on-aws-33

グローバルカタログに関する設定:

build-active-directory-on-aws-34

インターネットプロトコルに関する情報も、DHCPオプションを反映している模様。ひと通り問題無さそうです!

build-active-directory-on-aws-35

まとめ

前回エントリとの2部構成にて、Windows Active Directory on AWSの環境を『なるべくGUIを使わずに』構築する手順についてご紹介しました。(内容確認ではがっつりGUI使ってますけど)

手作業で進めていたこれらの内容をある程度自動化、定型化する事で作業も効率化出来てミスも減らせ、時間の短縮にも繋がると良いなぁと思い進めて来たテーマでしたが、一応の着地を見ることが出来てホッとしております。Active Directoryに関する部分はまだまだ知らない部分も多いので、機会があればまた見て行きたいと思います。こちらからは以上です。

併せて読みたい: