単純な興味本位なんですが、無償でHypve-Vクラスタを動かしてみたいと考えていまして、Hyper-VにはHyper-V Serverという無償OSがあるんですが、クラスタを組むにはActive Directoryが必須なのでどうしたものかと考えていたのですが、SambaがSamba 4からActive DirecotryのDomain Controllerとして動作できるのでこいつでどうにか出来んかと思い、先ずはインストールしてみる事にしました。(実際にクラスタが組めるかどうかはこれから確かめるので分かりませんw)
参考にしたサイト
- Samba4によるAD構築メモ1 : makoto_fujimotoのblog
- oss-d.net - このウェブサイトは販売用です! - サーバ 構築 オープンソース インストール バックアップ 仮想 構成 マシン リソースおよび情報
- 第1回 ソースコードからSamba 4をビルドしてみよう | 日経 xTECH(クロステック)
- Samba 4のコンパイルで "bin/asn1_compile The file or folder does not exist" が出たら - 富士山は世界遺産
インストール前の条件
- OSは CentOS 6.5(64bit版)
最小構成でインストール、IPアドレス等の最低限のネットワーク設定を実施済み。 - ホスト名は centsmb01
- 作成するドメインは contoso.local
Samba4のインストール
ソースコードからインストール。Sambaのバージョンは現時点で最新の4.1.4。
以降の作業はすべてrootで実施。
# # Sambaのインストール手順 - 最小構成のCentOS 6.5で実施 # Sambaのバージョンは4.1.4 # # 動作確認をしやすくするためとりあえずSELinuxを無効にしておく。 setenforce 0 # 必要に応じて設定を永続化 vi /etc/selinux/config # ➡SELINUX=disabled # 動作確認をしやすくするためとりあえずiptablesを止めておく。 # TODO : 実際の運用では開けるポートを設定する。 service iptables stop # 最低限使うコマンドをインストール yum install vim -y yum install wget -y # 依存モジュールのインストール yum install gcc -y yum install libacl-devel -y yum install libblkid-devel -y yum install gnutls-devel -y yum install python-devel -y # yum install pkgconfig -y #already installed yum install krb5-workstation -y yum install zlib-devel -y yum install libaio-devel -y yum install policycoreutils-python -y # yum install libsemanage-python -y #already installed # yum install setools-libs-python -y #already installed # yum install setools-libs -y #already installed yum install popt-devel -y yum install libpcap-devel -y yum install sqlite-devel -y yum install libidn-devel -y yum install libxml2-devel -y yum install libsepol-devel -y yum install keyutils-libs-devel -y yum install cyrus-sasl-devel -y yum install bind-utils -y # ソースのダウンロード cd /usr/tmp wget http://ftp.samba.org/pub/samba/samba-4.1.4.tar.gz tar zxvf samba-4.1.4.tar.gz cd samba-4.1.4 # コンパイル。成功すると /usr/local/samba にインストールされる。 ./configure make make install # hostsにホスト定義を追加 vim /etc/hosts #➡192.168.0.xxx centsmb01.contoso.local 追記 # resolv.confの設定 vim /etc/resolv.conf #以下の様な内容に編集 # search contoso.local # nameserver 192.168.0.xxx
Active Directory Domainの構築
samba-toolを使い、対話型のインストールを行いました。
# Samba 4では機能レベル"Windows Server 2008 R2"まで指定可能。 cd /usr/local/samba/bin ./samba-tool domain provision --interactive --function-level=2008_R2
以下対話インストールの内容
Realm [LOCALDOMAIN]: CONTOSO.LOCAL ← Realmなので大文字で指定 Domain [CONTOSO]: ← デフォルト設定 Server Role (dc, member, standalone) [dc]: ← デフォルト設定 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: ← デフォルト設定 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.0.xxx]: 192.168.0.y ← DNSフォーワーダを指定 Administrator password: ← パスワード入力 Retype password: ← パスワードの確認 Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=contoso,DC=local Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=contoso,DC=local Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: centsmb01 NetBIOS Domain: CONTOSO DNS Domain: contoso.local DOMAIN SID: S-1-5-21-3195629488-859169402-1860501972
#Kerberosクライアント設定
vim /etc/krb5.conf
以下の様な内容に編集
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = CONTOSO.LOCAL dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] CONTOSO.LOCAL = { kdc = centsmb01.contoso.local } [domain_realm] .contoso.llcal = CONTOSO.LOCAL contoso.local = CONTOSO.LOCAL
接続テスト
Sambaをシングルモードで起動し接続テストを行いました。
# シングルモードで起動 cd /usr/local/samba/sbin ./samba -i -M single
別ウィンドウから以下のコマンドでテスト。エラーが出なければOK。
/usr/local/samba/bin/smbclient -L localhost -U% /usr/local/samba/bin/smbclient //centsmb01.contoso.local/netlogon -U administrator kinit administrator@CONTOSO.LOCAL
自動起動設定
今回は行わないませんでした。
単純に/usr/local/sbin/samba を起動して動作させました。
TODO : 必要が出たら参考サイトを参考にしてスクリプトをインストールする。
Windowsからの管理
リモート管理用のマシン(今回はWindows 8.1を使用)にRSATをダウンロードし、インストールします。
インストール後、作成したドメインに参加すれば各種管理ツールを利用する事が出来ます。
"Active Directoryユーザーとコンピュータ"で接続してすると以下の様にオブジェクトの一覧がきちんと表示されます。
ただし、SambaでActive Directoryをインストールした場合、ADWSがインストールされていないため、"Active Direcoty管理センター"を利用することは出来ません。以下の様なエラーが出ます。
また、GPMCを起動したところ以下のメッセージがでたのですが、とりあえずは問題なく使えています。
これから実際にクラスタが組めるか確かめていこうと思います。