2014年5月24日土曜日

sshキーによるSystem Center Operations Managerエージェントの導入

UNIX/LinuxにSystem Center Operations Managerエージェントの導入するやり方として、sshキーを使う方法があるので試してみます。
CentOS 6.5で試してみます。

とりあえず、すでに導入済みのOMエージェントを一旦アンインストールします。
scom-centos65-agentuninstall01
scom-centos65-agentuninstall02
scom-centos65-agentuninstall03
scom-centos65-agentuninstall04
scom-centos65-agentuninstall05
scom-centos65-agentuninstall06
scom-centos65-agentuninstall07
scom-centos65-agentuninstall08

sshキーを指定してOMエージェントを導入してみます。
sc2012r2om-centos65-agent-install-ssh01
sc2012r2om-centos65-agent-install-ssh02
sc2012r2om-centos65-agent-install-ssh03
sc2012r2om-centos65-agent-install-ssh04

監視用のアクションアカウント"scxagent"と、sshキーを指定します。
sc2012r2om-centos65-agent-install-ssh05

sudoを選びます。
sc2012r2om-centos65-agent-install-ssh06

通信用のアカウントとしては、監視用のアクションアカウント"scxagent"を指定します(パスワードも設定しておきます)。
sc2012r2om-centos65-agent-install-ssh07

保存して、ウィザードに戻ります。
sc2012r2om-centos65-agent-install-ssh08

ターゲットリソースを指定して、[検出]ボタンを押します。
sc2012r2om-centos65-agent-install-ssh09

エラー発生。。。
sc2012r2om-centos65-agent-install-ssh10error

rootアカウントで導入してみます。
sc2012r2om-centos65-agent-install-ssh11
sc2012r2om-centos65-agent-install-ssh12
sc2012r2om-centos65-agent-install-ssh13

rootアカウントで導入するように設定します。
sc2012r2om-centos65-agent-install-ssh14

通信用のアカウントとしては、監視用のアクションアカウント"scxagent"を指定します(パスワードも設定しておきます)。
sc2012r2om-centos65-agent-install-ssh15

保存して、ウィザードに戻ります。
sc2012r2om-centos65-agent-install-ssh16

ターゲットリソースを指定して、[検出]ボタンを押します。
sc2012r2om-centos65-agent-install-ssh17

今度はうまく検出できました。
sc2012r2om-centos65-agent-install-ssh18

チェックボックスをチェックして、[インストール]ボタンを押します。
sc2012r2om-centos65-agent-install-ssh19

無事にインストール完了。
sc2012r2om-centos65-agent-install-ssh20

一瞬、プラットフォーム不明、バージョン不明になってますが、時間が解決する(監視用のアクションアカウントはOMで設定済みですし)と思われるので、放置します。
sc2012r2om-centos65-agent-install-ssh21

切り分けのため、最近リリースされたUbuntu 14.04にsshキーで、System Center Operations Managerエージェントの導入してみます。
(ウィザードは、散々説明しているので端折ります~)
sc2012r2om-ubuntu1404-agent-install-ssh31
sc2012r2om-ubuntu1404-agent-install-ssh32
sc2012r2om-ubuntu1404-agent-install-ssh33

監視用のアクションアカウント"scxagent"と、"このアカウントには特権アクセスがありません"を指定します。
sc2012r2om-ubuntu1404-agent-install-ssh34

sudoで昇格して導入することを確認します。
sc2012r2om-ubuntu1404-agent-install-ssh35
保存を押してウィザードに戻ります。

ターゲットリソースを指定して、[検出]ボタンを押します。
sc2012r2om-ubuntu1404-agent-install-ssh37

メッセージが先ほどと異なりますが、やっぱりエラー発生。。。
sc2012r2om-ubuntu1404-agent-install-ssh37error

ということで、Ubuntu 14.04もrootアカウントで導入してみます(途中の解説は省略)。
sc2012r2om-ubuntu1404-agent-install-ssh01
sc2012r2om-ubuntu1404-agent-install-ssh02
sc2012r2om-ubuntu1404-agent-install-ssh03

rootアカウントで導入するように設定します。
sc2012r2om-ubuntu1404-agent-install-ssh04

通信用のアカウントとしては、監視用のアクションアカウント”scxagent”を指定します(パスワードも設定しておきます)。
sc2012r2om-ubuntu1404-agent-install-ssh05

保存して、ウィザードに戻ります。
sc2012r2om-ubuntu1404-agent-install-ssh06

ターゲットリソースを指定して、[検出]ボタンを押します。
sc2012r2om-ubuntu1404-agent-install-ssh07

うまく検出できました。
sc2012r2om-ubuntu1404-agent-install-ssh08

ここで、再度立ち戻りsudoでうまくいかないか念のため確認してみることにしました。
sc2012r2om-ubuntu1404-agent-install-ssh0402
sc2012r2om-ubuntu1404-agent-install-ssh0602
sc2012r2om-ubuntu1404-agent-install-ssh0702
やっぱり、エラーが発生して失敗しました。。。
sc2012r2om-ubuntu1404-agent-install-ssh0702error

再度、rootアカウントで導入し直し、ウィザードを下記の画面まで進めます。
[管理]ボタンを押して、OMエージェントを導入します。
sc2012r2om-ubuntu1404-agent-install-ssh09
sc2012r2om-ubuntu1404-agent-install-ssh10

OMエージェントの導入が成功しました。
sc2012r2om-ubuntu1404-agent-install-ssh11

Ubuntu 14.04も一瞬、プラットフォーム不明、バージョン不明になってますが、
sc2012r2om-ubuntu1404-agent-install-ssh12

(監視用のアクションアカウントであるscxagentをUbunt 14.04に作成済みでしたので)5分ほど待つと、Ubuntu 14.04として監視できるようになりました。
sc2012r2om-ubuntu1404-agent-install-ssh13

私のやり方がまずいのか、仕様なのか、バグなのか不明ですが、sshキーを使ってOMエージェントを導入する際には、rootアカウントを指定する必要があるようです。
今後も折に触れて確認し、何か変更があればお伝えしようと思います。

2014年5月12日月曜日

SCVMMでVMをシャットダウンできないときのTips

後輩から教えてもらったのですが、備忘録を兼ねて書いておきます。

私の場合は、特にLinuxなVMで遭遇することが多かったのですが、System Center Virtual Machine ManagerでVMをシャットダウンしようとすると
"バーチャルマシンをシャットダウンできません。仮想ゲストサービスが"
といったメッセージが表示され失敗することがあります。
vmm2vmshutdownerror
この例では、Debian740というVMなのですがよく見てみると上記の画面ショットにおける[VM追加機能]列が"未検出"になっています。
※この場合でも、Hyper-Vマネージャー側では問題なくVMのシャットダウンが可能です。

ではどうするか。
該当のVMを選択し、右ボタンクリックから[最新の情報に更新]を実行します。
vmm2vmshutdownerror2
これで無事にシャットダウンできるようになります。

シャットダウンした結果は、下記の通りです~。
vmm2vmshutdownerror3

2014年4月29日火曜日

VyOSでAzureにVPN接続

AzureにVPN接続するために、Vyattaを使おうとしていたのですが、去年の今頃から更新が止まっていることに気づきました
現在はforkして、VyOSが誕生しています。

インストール方法も、コマンド体系も、Vyattaのノウハウは流用できるのがうれしいですね。
コードネームは元素名になっているようで、現在は水素(Hydrogen)です。次のリリースはヘリウム(Helium)が1.1.0としてリリースされるようです。

2014/04/28時点で、VyOSのホームページからHydrogenとして1.0.2がダウンロード可能です。

さてVyattaを買収したBroadcomのコミュニティページでは、Microsoft AzureへのVPN接続設定が2014年4月3日に公開されています。
それまでは、見様見真似でconfigを書いていたのですが、VPN接続自体はできるもの通信が疎通いませんでしたので、今回これを利用してconfigを見直すます。
で、以前書いていたもの(vyatta-config-20140407.txt)、Broadcomのコミュニティページで公開されているものを参考に書きなおしたもの(vyos-config.txt)のdiff(Windowsのfcコマンド)を取ってみたので、VPN部分だけを下記に記載します。

***** vyos-config.txt
ipsec {
esp-group Azure {
compression disable
***** VYATTA-CONFIG-20140407.TXT
ipsec {
esp-group azure {
compression disable
*****

***** vyos-config.txt
proposal 1 {
encryption aes256
hash sha1
***** VYATTA-CONFIG-20140407.TXT
proposal 1 {
encryption aes128
hash sha1
*****

***** vyos-config.txt
}
ike-group Azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes256
hash sha1
***** VYATTA-CONFIG-20140407.TXT
}
ike-group azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes128
hash sha1
*****

***** vyos-config.txt
ipsec-interfaces {
interface eth0

}
***** VYATTA-CONFIG-20140407.TXT
ipsec-interfaces {
interface pppoe1

}
*****

***** vyos-config.txt
}
site-to-site {
***** VYATTA-CONFIG-20140407.TXT
}
nat-traversal enable
site-to-site {
*****

***** vyos-config.txt
}
connection-type initiate
default-esp-group Azure
description "Azure cloud Virtual Network Gateway"
ike-group Azure
local-address 192.168.1.254
***** VYATTA-CONFIG-20140407.TXT
}
connection-type respond
default-esp-group azure
description "Azure cloud Virtual Network Gateway"
ike-group azure
local-address 192.168.1.254
*****

※"default-esp-group"と、"ike-group"の最初の文字が大文字なのは大勢に影響ないので無視してください。
これを見るに、以前書いていたもの(vyatta-config-20140407.txt)は、下記の違いによりAzureのVPN接続経由で疎通していなかったと推測しました。

  1. ipsec-interfacesでデバイスとして存在しないものを指定している。

  2. nat-traversalをenableにしている。

  3. connection-typeをrespondにしている。


ということで、動いているconfigを晒しておきます(ntpはもう少し整理すべきかも)。

interfaces {
ethernet eth0 {
address 192.168.1.254/24
hw-id 00:15:5d:01:0f:2b
}
ethernet eth1 {
address 192.168.3.1/24
hw-id 00:15:5d:01:0f:2c
}
loopback lo {
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop 192.168.1.1 {
}
}
}
}
service {
ssh {
listen-address 192.168.1.254
listen-address 192.168.3.1
port 22
}
}
system {
config-management {
commit-revisions 20
}
console {
device ttyS0 {
speed 9600
}
}
domain-name sshzk2012r2.local
host-name vyos
login {
user vyos {
authentication {
encrypted-password パスワードが暗号化されて記載!
}
level admin
}
}
name-server 192.168.1.1
name-server 192.168.3.11
name-server 192.168.3.12
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
server ntp.nict.jp {
}
}
package {
repository community {
components main
distribution hydrogen
url http://packages.vyos.net/vyos
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
vpn {
ipsec {
esp-group Azure {
compression disable
lifetime 3600
mode tunnel
pfs disable
proposal 1 {
encryption aes256
hash sha1
}
}
ike-group Azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes256
hash sha1
}
}
ipsec-interfaces {
interface eth0
}
logging {
log-modes all
}
site-to-site {
peer AzureのVPNゲートウェイIPアドレス! {
authentication {
mode pre-shared-secret
pre-shared-secret IPSec事前共有キーを設定します!
}
connection-type initiate
default-esp-group Azure
description "Azure cloud Virtual Network Gateway"
ike-group Azure
local-address 192.168.1.254
tunnel 1 {
allow-nat-networks disable
allow-public-networks disable
local {
prefix 192.168.3.0/24
}
remote {
prefix 172.16.0.0/16
}
}
}
}
}
}


VPN接続ができた結果、下図の様なネットワーク構成となりました。
azure2lab-nw-diagram

RDP接続も問題なくできています。
azure2lab-rdp

ようやくここまで来たので、SC 2012 R2 OMからAzure上のVMを直接監視する設定も行ってみるつもりです。