Skip navigation
2017

今年もクリスマスが近づいてきたので、日本の vExpert 2017 メンバーで

アドベントカレンダーをお届けしたいと思います。

vExperts Advent Calendar 2017 - Adventar

 

1日目は、かんたんに vExpert についての紹介と、

今年の VMTN 日本語フォーラムの様子を投稿しようと思います。

 

vExpert とは どんな人?

VMware のコミュニティに貢献した人が、VMware から表彰される制度で、

自薦・他薦により年次で受賞者が選出されます。

貢献の方法は、登壇、著作、ブログ投稿、VMUG / VMTN でのコミュニティ活動、ツール制作など、さまざまです。

受賞者のプロフィールは vExpert Directory で見ることができます。

ちなみに日本の vExpert 2017 の受賞者は 50人くらいです。

 

また、最近では vExpert の受賞者から専門分野ごとのvExpertを選出するサブ プログラムもあり、

2017年は vExpert NSX、vExpert vSAN、vExpert Cloud の 3つのアワードがありました。

 

I am ...

(今年の VMworld / vForum がこんな感じだったので・・・)

私の場合は、おもに VMTN での貢献で vExpert を受賞しているので、

今回は VMTN Japanese フォーラムの 2017 年の様子を投稿しようと思います。

 

以前の投稿より・・・

vExpert 2017 に選ばれました。そして VMTN のユーザーモデレータになりました。

 

VMTN Japanese フォーラムの様子 2017

まず、2015年、2016年の様子を振り返っておこうと思います。

VMware のコミュニティサイトと、日本語 Online Forum の様子。 ※2015年

VMware Community の Japanese Online Forum (VMTN Japan) の様子 2016。

 

もともと、年間 100~120件程度のディスカッション(スレッド)投稿があったのですが、

(サイトへのアクセスが悪くなったこともあり?)

2016年は 70件弱(というか 69件くらい)におちこんでいました。

 

それでは、VMTN(VMware Technology Netowrk)の個人的な3大トピック。

  1. 各国語フォーラムがリニューアルされた。3月
  2. 多すぎた製品別、機能別などのフォーラムが統合された。6月頃~
  3. コミュニティ プラットフォームのソフトウェア Jive のバージョンアップ。
    さりげなくWebサイトのパフォーマンスが改善された。アイコンが丸くなった。6月

 

そして、VMTN Japanese フォーラムの今年のトピックをいくつか。

  1. コーポレートサイト(https://www.vmware.com/jp.html)からの「コミュニティ」直リンク復活!!
  2. VMTN の画面上の地球アイコンから、直接 Japanese フォーラムに行けるようになった。
  3. 各国語フォーラムのリニューアルにともない、Japan → 新規 Japanese フォーラムに。
    VMTN Japanese フォーラムがリニューアルされたので、よろしくおねがいします。

 

各国語フォーラムのリニューアルにより、以前よりも日本語フォーラムにアクセスしやすくなりました。

vmtnj2017.png

 

サイトへの導線が復活したので、今年は 2016年(69件)よりもフォーラムの活性化が期待できると思い、

はりきって去年の投稿と同じ方法で投稿数をカウントしてみると・・・

 

今年は 68件・・・なんと去年とほとんど変わってませんでした。

月ごとの件数を見ても、サイトリニューアルや導線復活の効果は微妙な感じです。

PS C:\> $rss = Invoke-WebRequest -Method Get -Uri "https://communities.vmware.com/community/feeds/threads?community=7560"

PS C:\> $content = [xml]$rss.Content

PS C:\> $content.rss.channel.title

VMware Communities : Discussion List - Japanese

PS C:\> $items = $content.rss.channel.Item

PS C:\> $items2017 = $items | select @{N="Date";E={(Get-Date $_.date)}},title | where {$_.Date -ge "2016-12-01"}

PS C:\> $items2017.Count

68

PS C:\> $items2017 | group {Get-Date $_.Date -f "yyyy-MM"} | select Name,Count | sort Name | ft -AutoSize

 

Name    Count

----    -----

2016-12     5

2017-01     5

2017-02     4

2017-03     5

2017-04     3

2017-05     5

2017-06     5

2017-07     8

2017-08    13

2017-09     4

2017-10     6

2017-11     5

 

 

PS C:\>

 

考えてみると各国語フォーラムのリニューアルは、サイト的にはフォーラムが新規作成されたので、

これまでの Japan フォーラムのフォロー設定がさりげなくリセットされています。

以前にフォローしていた人の通知は外れているので、VMTN を思い出す機会が減っているのかもしれません。

 

ちなみに、タイトル ベースでディスカッション投稿を見てみると下記のような感じでした。

PS C:\> $items2017

 

Date                title

----                -----

2017/11/28 17:27:51 AirWatchコンソール画面のプロファイル名として使える文字の仕様に変更がありましたでしょうか?

2017/11/23 21:51:26 Workstation上のESXiにインストールしたCentOSがPower ONできない

2017/11/17 8:45:06  vCenter ConverterでP2v後の起動でキー入力できない。

2017/11/07 20:43:39 vSphere HAの構成オプション「仮想マシンの監視」機能について

2017/10/18 16:58:11 Get-Logでvm-supportを取得中、接続が切断される

2017/11/01 9:26:17  ゲストOSとしてWindows2000ProfessionalやWindowsXPHomeがインストールできない

2017/10/27 20:03:19 同じEVCモードのHAクラスタ間のESXiホストの移動について

2017/10/16 18:20:18 PowerCLIでのESXiホスト間のファイル送受信について

2017/10/10 21:09:08 コメンドラインでの仮想マシン構成変更について

2017/10/03 21:47:00 vCenter Server再インストールのライセンスについて

2017/10/04 10:20:37 Win2003をESXi5.1へのP2Vについて

2017/07/02 19:07:33 AMD APU(A10-7850K、A4-5300)にてvmwareを実行していると、ホストOSにBSOD CLOCK_WATCHDOG_TIMEOUT(101)が発生します

2017/09/28 16:28:36 ゲストOSの再起動に失敗する

2017/09/27 16:16:28 ネットワーク接続(ゲスト:Cent OS ⇔ ホスト:Windows7)

2017/09/14 23:09:29 vcloud directorで作成した仮想マシンを 別のリソースプール(ルートリソースプール)にvmotionした場合の影響

2017/09/14 16:49:10 Taskのinfo.descriptionIdプロパティについて

2017/08/30 21:04:30 P2V速度を上げる方法について

2017/08/30 16:01:25 VMWarePlayerでのマルチモニタ使用について

2017/08/31 14:26:03 BusLogicのエラーが出ます

2017/08/23 18:32:19 VMware ESXi 6.5.0d VM(Windows Server 2016)でインストール後エラー

2017/08/25 0:20:38  vmware HAのDRS振り分け方法

2017/08/23 14:08:50 vCenter Server for Essential

2017/08/22 16:47:54 アプリケーション監視のSDKについて

2017/08/21 10:22:30 vSAN 6.6 ネットワーク設定について

2017/08/16 23:39:45 gest OSのUbuntuで sudo apt-get install dkmsを行った際、VirtualBox側で行う必要のある操作は何でしょうか

2017/08/10 13:22:57 ハートビートデータストアを設定しない場合の挙動について

2017/08/15 18:44:40 vCenterからvLBとVMのvNIC設定を取得した際のNetwork Adapterの表示順序について

2017/08/03 15:24:19 ESXi 6.5を再起動すると必ず通信ができなくなる

2017/08/08 10:11:06 vSphere 6.5でvCenter Server Applianceを停止しているとvSphere HAが動作しない

2017/05/18 18:00:58 Exsi6.0で サーバー用 Tesla GPU アクセラレータ NVIDIA Tesla M40 or M4 or P100 が対応可能かどうか

2017/07/30 14:31:09 仮想マシン windows server 2016 Standard へ view connection server インストール中エラー

2017/07/24 11:20:51 コマンドでデプロイ

2017/07/13 20:05:28 USBデバイスが認識されない

2017/07/09 8:55:09  ゲストosで音割れ

2017/06/15 17:46:12 Windows10(x64)にThinAppで仮想化したMicrosoft Visio2013/Project2013を展開したい。ライセンスエラーを回避できず動かせない。

2017/07/11 12:35:55 vSphere 6.5のサポート期限について

2017/07/06 16:53:23 VmwareEsxi上の仮想マシンのシャットダウン、電源OFFの確認について

2017/07/01 15:55:45 VMware ESXi 6.5.0d で OS X 仮想マシンの使用

2017/06/28 10:21:38 VMPlayerでのディスク圧縮方法

2017/06/22 13:21:20 仮想サーバからFC-VTLを使用可能でしょうか

2017/06/20 17:09:37 ESXi6.xでのNTP設定がリセットされてしまう。

2017/06/07 11:10:51 SCP失敗

2017/05/19 14:30:07 vCenterServerのサービスを起動できない

2017/05/22 20:42:35 KB2068353 HBAデバイス タイムアウト値について

2017/05/16 1:40:07  フォルダ共有

2017/05/10 19:44:54 vCenterのサービスが起動できない

2017/04/04 22:50:33 VMware(R) Workstation 12 Player vmware-authd.exe にてハンドルリーク

2017/04/11 16:50:04 VMFS 空き領域

2017/04/08 8:34:28  VMware Workstation 12 Playerの共有フォルダの「ネットワークドライブに再接続できませんでした」について

2017/03/27 14:43:10 ESXiの過去のCPU使用率

2017/03/14 9:00:47  VMTN Japanese フォーラムがリニューアルされました(201703/14)

2017/03/02 4:08:29  ESXi 6.0 で USB3.0 HDD接続後データストア登録

2017/03/03 10:39:38 VMが起動出来なくなった

2017/02/22 15:17:37 Available Mbytesカウンタの変化とバルーニング機能について

2017/03/01 9:43:29  Resouce Poolの作成削除履歴

2017/02/27 11:07:08 全体的に重い場合の調査方法について

2017/02/16 14:15:22 Resource Pool

2017/02/15 16:20:07 2要素認証

2017/01/28 13:58:43 ESXiをNVMeSSD使い、RAID1でインストールしたい。

2017/01/28 11:12:00 VMwareWorkStationV12.5で起動時にエラーが出る

2017/01/06 18:06:33 Site Recovery Manager 5.8を6.1へアップグレードする手順について

2017/01/07 10:47:17 VMware Fusion 3.1.4 Mac OS / 仮想マシンWindows 起動モード?

2017/01/12 19:25:52 vsphere5.1からvsphere6.5のアップグレード方法について

2016/12/02 23:36:17 VMwareESXi 5.1 NIC チーミング構成で のNIC交換

2016/12/20 17:25:22 コマンドを使用したディスクの障害検知について

2016/12/15 14:13:13 vim-cmdのESXi6.0 update 2でのサポート

2016/12/01 14:32:34 vmdkファイルの圧縮時にCould not openで圧縮ができない

2016/12/02 10:06:55 vSphere5.5でのStorage vMotion要件について

 

PS C:\>

 

投稿件数は以前より減っていますが、最近あらたに投稿、回答されるかたもいらっしゃるので

地道にもりあげていければと思います。

ちなみに、英語の製品別フォーラム(NSX とか、vSAN とか)のほうは相変わらず活発で、

実はよく見ると日本人らしき(英語の)問い合わせも ちらほら見かけます。

 

VMTN Japanese フォーラムを利用しよう!

ということで、VMTN Japanese フォーラムの利用方法を宣伝しておこうと思います。

 

まず VMTN の利用方法です。

気軽に、フォーラムにて質問投稿、返信してみてもらえればと思います。

【最初にお読みください】VMTN Japanese フォーラムの利用方法

 

そして以前に VMTN 日本語フォーラムをフォローしていた人は、ぜひまたフォローお願いします。

VMTN フォーラムの更新情報を受け取る方法

 

以上、VMTN Japanese フォーラムの 2017年の様子でした。

Photon OS 2.0 では、SysRq キーが無効にされているようです。

root@vm06 [ ~ ]# cat /etc/photon-release

VMware Photon OS 2.0

PHOTON_BUILD_NUMBER=304b817

root@vm06 [ ~ ]# grep CONFIG_MAGIC_SYSRQ /boot/config-*-esx

# CONFIG_MAGIC_SYSRQ is not set

 

Photon OS を マジック SysRq キーでハングさせたいことがあったので、

今回は SRPM を利用して、Kernel の RPM をビルドしてみようと思います。

(vSphere HA の動作確認で使用しようかなと・・・)

 

Photon OS の Source RPM ファイル(SRPM)は、下記のあたりからダウンロードできます。

※rpm ファイルのリストが表示されるまで時間がかかることがあります。

https://bintray.com/vmware/photon_srpms_2.0_x86_64/packages#files

 

ビルドで必要な RPM のインストール。

依存関係があったり、ビルドに必要だったりする RPM を、

あらかじめインストールしておきます。今回は Kernel なので特に多いです。

spec ファイルに記載された依存 RPM だけでは不足していて、エラーになります。

※長いので RPM ごとにエスケープで改行していますが、tdnf install は1行で実行できます。

※RPM の記載順序には、特に意味はありません。

tdnf install -y \

rpm-build \

Linux-PAM-devel \

glib-devel \

kbd \

kmod-devel \

libdnet-devel \

libmspack-devel \

openssl-devel \

procps-ng-devel \

xerces-c-devel \

xml-security-c-devel \

tar \

patch \

make \

gcc \

glibc-devel \

linux-api-headers \

binutils \

diffutils \

elfutils

 

SRPM のダウンロードと展開。

まず SRPM をダウンロードします。

root@vm06 [ ~ ]# curl -L https://bintray.com/vmware/photon_srpms_2.0_x86_64/download_file?file_path=linux-esx-4.9.60-1.ph2.src.rpm -o linux-esx-4.9.60-1.ph2.src.rpm

root@vm06 [ ~ ]# ls -l linux-esx-4.9.60-1.ph2.src.rpm

-rw-r----- 1 root root 93291006 Nov 21 14:20 linux-esx-4.9.60-1.ph2.src.rpm

 

今回は、Kernel なので この SRPM を使用します。

Photon OS 2.0 GA 同梱の RPM より ひとつ新しいバージョンがリリースされていたので

それを利用します。

root@vm06 [ ~ ]# rpm -qpi linux-esx-4.9.60-1.ph2.src.rpm

Name        : linux-esx

Version     : 4.9.60

Release     : 1.ph2

Architecture: x86_64

Install Date: (not installed)

Group       : System Environment/Kernel

Size        : 93363301

License     : GPLv2

Signature   : RSA/SHA1, Thu 09 Nov 2017 05:44:26 AM UTC, Key ID c0b5e0ab66fd4949

Source RPM  : (none)

Build Date  : Thu 09 Nov 2017 04:00:50 AM UTC

Build Host  : photon-d2dd6bc2fb2e

Relocations : (not relocatable)

Vendor      : VMware, Inc.

URL         : http://www.kernel.org/

Summary     : Kernel

Description :

The Linux kernel build for GOS for VMware hypervisor.

 

RPM をビルドする Photon OS に、SRPM をインストールします。

いろいろ RPM を追加するので、ビルドした Kernel をインストールするゲストとは別に、

ビルド用のゲストを用意したほうがよいと思います。

root@vm06 [ ~ ]# rpm -ivh linux-esx-4.9.60-1.ph2.src.rpm

 

/usr/src/photon ディレクトリ配下に、ソースと .spec ファイルが展開されます。

root ではない OS ユーザ(今回は gowatana)でビルドしようと思うので、

/usr/src/photon から下のファイルの所有者を変更してしまいます。

 

 

root@vm06 [ ~ ]# chown -R gowatana:users /usr/src/photon

root@vm06 [ ~ ]# ls -l /usr/src/photon

total 8

drwxr-x--- 2 gowatana users 4096 Nov 21 14:24 SOURCES

drwxr-x--- 2 gowatana users 4096 Nov 21 14:24 SPECS

root@vm06 [ ~ ]# su - gowatana

gowatana [ ~ ]$

 

ソースのカスタマイズ。

ファイルを編集して、MAGIC_SYSRQ を有効にします。

今回は、patch などは作成せず、直接ファイルを編集してしまいます。

 

 

gowatana [ ~ ]$ cp /usr/src/photon/SOURCES/config-esx config-esx.orig

gowatana [ ~ ]$ vi /usr/src/photon/SOURCES/config-esx

gowatana [ ~ ]$ diff config-esx.orig /usr/src/photon/SOURCES/config-esx

2895c2895,2896

< # CONFIG_MAGIC_SYSRQ is not set

---

> CONFIG_MAGIC_SYSRQ=yes

> CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1

gowatana [ ~ ]$

 

インストールするときに正式な RPM と衝突しないように、

今回はパッケージの名前を linux-esx-custom に変更してしまいます。

 

 

gowatana [ ~ ]$ cp /usr/src/photon/SPECS/linux-esx.spec linux-esx.spec.orig

gowatana [ ~ ]$ vi /usr/src/photon/SPECS/linux-esx.spec

gowatana [ ~ ]$ diff linux-esx.spec.orig /usr/src/photon/SPECS/linux-esx.spec

3c3

< Name:           linux-esx

---

> Name:           linux-esx-custom

gowatana [ ~ ]$

 

RPM のビルド。

RPM をビルドします。

gowatana [ ~ ]$ rpmbuild -ba /usr/src/photon/SPECS/linux-esx.spec

 

しばらく待つと、rpm ファイルが生成されます。

 

 

gowatana [ ~ ]$ ls -l /usr/src/photon/RPMS/x86_64/

total 231576

-rw-r----- 1 gowatana users   8091691 Nov 21 15:09 linux-esx-custom-4.9.60-1.x86_64.rpm

-rw-r----- 1 gowatana users 210508901 Nov 21 15:14 linux-esx-custom-debuginfo-4.9.60-1.x86_64.rpm

-rw-r----- 1 gowatana users  10952427 Nov 21 15:09 linux-esx-custom-devel-4.9.60-1.x86_64.rpm

-rw-r----- 1 gowatana users   7574551 Nov 21 15:09 linux-esx-custom-docs-4.9.60-1.x86_64.rpm

 

作成した RPM のインストール。

ビルドした RPM をインストールしてみます。

root@vm02 [ ~ ]# rpm -qa | grep linux-esx

linux-esx-4.9.53-5.ph2.x86_64

root@vm02 [ ~ ]# uname -r

4.9.53-5.ph2-esx

 

インストールします。

(ビルドで使用したサーバとは別のサーバにインストールしています)

 

 

 

root@vm02 [ ~ ]# ls -lh linux-esx-custom-4.9.60-1.x86_64.rpm

-rw-r----- 1 root root 7.8M Nov 21 15:19 linux-esx-custom-4.9.60-1.x86_64.rpm

root@vm02 [ ~ ]# rpm -ivh linux-esx-custom-4.9.60-1.x86_64.rpm

Preparing...                          ################################# [100%]

Updating / installing...

   1:linux-esx-custom-4.9.60-1        ################################# [100%]

root@vm02 [ ~ ]# rpm -qa | grep linux-esx

linux-esx-custom-4.9.60-1.x86_64

linux-esx-4.9.53-5.ph2.x86_64

 

カーネルパラメータでの sysrq 有効化。

カーネルのオプションだけでは、sysrq キーは有効になっていません。

さらに、sysctl で kernel.sysrq = 1 を設定する必要があります。

root@vm02 [ ~ ]# sysctl -a | grep sysrq

kernel.sysrq = 0

sysctl: reading key "net.ipv6.conf.all.stable_secret"

sysctl: reading key "net.ipv6.conf.default.stable_secret"

sysctl: reading key "net.ipv6.conf.eth0.stable_secret"

sysctl: reading key "net.ipv6.conf.lo.stable_secret"

root@vm02 [ ~ ]#

 

これは、systemd の RPM に含まれる

50-security-hardening.conf ファイルの設定で無効化(kernel.sysrq=0)されているので、

root@vm02 [ ~ ]# cat /etc/sysctl.d/50-security-hardening.conf

#Enabling the strongest form of native Linux Address Space Layout Randomization (ASLR).

kernel.randomize_va_space=2

#Restrict revealing kernel addresses

kernel.kptr_restrict=2

#Preventing non-root users from viewing the kernel ring buffer.

kernel.dmesg_restrict = 1

# To avoid potential information disclosure

net.ipv4.tcp_timestamps = 0

# disabling an unused feature

kernel.sysrq=0

root@vm02 [ ~ ]# rpm -qf /etc/sysctl.d/50-security-hardening.conf

systemd-233-9.ph2.x86_64

 

ファイルを編集してしまいまいます。

root@vm02 [ ~ ]# sed -i "s/kernel.sysrq=0/kernel.sysrq=1/" /etc/sysctl.d/50-security-hardening.conf

root@vm02 [ ~ ]# grep kernel.sysrq /etc/sysctl.d/50-security-hardening.conf

kernel.sysrq=1

 

sysctl の /etc/sysctl.conf ファイルがデフォルトでは作成されないので、
ファイルが含まれる distrib-compat をインストールしておくと、

sysctl コマンドのエラーがなくなります。

※実際はただファイル作成しても大丈夫です。

root@vm06 [ ~ ]# sysctl -p

sysctl: cannot open "/etc/sysctl.conf": No such file or directory

root@vm06 [ ~ ]# yum install -y distrib-compat

root@vm06 [ ~ ]# sysctl -p

root@vm06 [ ~ ]#

 

OS を再起動します。

※このあと EFI セキュアブートを無効にするので、シャットダウンでもよいです。

root@vm02 [ ~ ]# reboot

 

VM での IEF セキュアブート無効化。

OVA 版の Photon OS 2.0 だと、EFI のセキュアブートが有効で、

今回作成したカーネルの RPM がひっかかってしまうはずです。

ということで、今回は VM でセキュアブートを無効にしておきます。

esxi-vm-secureboot-off.png

 

sysrq キー有効化の確認。

OS を再起動すると、新しいカーネルを読み込まれていて、

さらに kernel.sysrq = 1 が設定されています。

root@vm02 [ ~ ]# uname -r

4.9.60-1-esx

root@vm02 [ ~ ]# sysctl -a | grep sysrq

kernel.sysrq = 1

sysctl: reading key "net.ipv6.conf.all.stable_secret"

sysctl: reading key "net.ipv6.conf.default.stable_secret"

sysctl: reading key "net.ipv6.conf.eth0.stable_secret"

sysctl: reading key "net.ipv6.conf.lo.stable_secret"

root@vm02 [ ~ ]# cat /proc/sys/kernel/sysrq

1

 

OS をクラッシュさせたりできるようになりました。

root@vm02 [ ~ ]# echo c > /proc/sysrq-trigger

 

たとえば、vSphere HA の「仮想マシンの監視」の動作確認に使用したりできます。

guest-sysrq-crash.png

 

以上、Photon OS 2.0 で マジック SysRq キーを利用できるようにしてみる話でした。

Photon OS 2.0 から、PMD(Photon Management Daemon)と

その CLI である pmd-cli が導入されたので使用してみます。

 

Photon Management Daemon Command-line Interface (pmd-cli)

photon/pmd-cli.md at master · vmware/photon · GitHub

 

PMD のインストール。

pmd のパッケージをインストールして、pmd サービスを起動します。

root@photon-machine [ ~ ]# tdnf install -y pmd

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64)'

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64) Updates'

Refreshing metadata for: 'VMware Photon Extras 2.0(x86_64)'

photon-extras                              106    100%

Installing:

libgpg-error             x86_64       1.27-1.ph2       photon       118.88k 121733

cyrus-sasl               x86_64       2.1.26-13.ph2    photon       558.79k 572200

libgcrypt                x86_64       1.8.1-1.ph2      photon         1.18M 1235073

perl                     x86_64       5.24.1-4.ph2     photon        49.41M 51811861

libxml2                  x86_64       2.9.6-1.ph2      photon         7.30M 7651659

haveged                  x86_64       1.9.1-3.ph2      photon       186.28k 190753

openldap                 x86_64       2.4.44-3.ph2     photon         1.52M 1598869

iputils                  x86_64       20151218-4.ph2   photon       262.51k 268810

ntp                      x86_64       4.2.8p10-4.ph2   photon         6.28M 6581037

pcre                     x86_64       8.40-4.ph2       photon       699.09k 715866

pmd-libs                 x86_64       0.0.5-3.ph2      photon       330.13k 338056

lightwave-client-libs    x86_64       1.3.1-5.ph2      photon         2.20M 2308680

jansson                  x86_64       2.10-1.ph2       photon        76.67k 78510

copenapi                 x86_64       0.0.2-3.ph2      photon        62.80k 64304

likewise-open            x86_64       6.2.11.4-3.ph2   photon        11.52M 12078104

netmgmt                  x86_64       1.1.0-9.ph2      photon       149.77k 153360

c-rest-engine            x86_64       1.0.4-3.ph2      photon       107.93k 110520

pmd                      x86_64       0.0.5-3.ph2      photon       527.47k 540133

 

Total installed size:  82.42M 86419528

 

Downloading:

pmd                                     173185    100%

c-rest-engine                            49211    100%

netmgmt                                  72283    100%

likewise-open                          3899636    100%

copenapi                                 35650    100%

jansson                                  42100    100%

lightwave-client-libs                   737040    100%

pmd-libs                                 93441    100%

pcre                                    301344    100%

ntp                                    3637335    100%

iputils                                 129855    100%

openldap                                890618    100%

haveged                                  75010    100%

libxml2                                1589185    100%

perl                                  18290806    100%

libgcrypt                               510631    100%

cyrus-sasl                              298403    100%

libgpg-error                             61382    100%

Testing transaction

Running transaction

Installing/Updating: jansson-2.10-1.ph2.x86_64

Installing/Updating: copenapi-0.0.2-3.ph2.x86_64

Installing/Updating: libgpg-error-1.27-1.ph2.x86_64

Installing/Updating: libgcrypt-1.8.1-1.ph2.x86_64

Installing/Updating: iputils-20151218-4.ph2.x86_64

Installing/Updating: cyrus-sasl-2.1.26-13.ph2.x86_64

Installing/Updating: openldap-2.4.44-3.ph2.x86_64

Installing/Updating: perl-5.24.1-4.ph2.x86_64

Installing/Updating: ntp-4.2.8p10-4.ph2.x86_64

Installing/Updating: libxml2-2.9.6-1.ph2.x86_64

Installing/Updating: haveged-1.9.1-3.ph2.x86_64

Installing/Updating: likewise-open-6.2.11.4-3.ph2.x86_64

Waiting for lwreg startup.

ok

Installing settings from /opt/likewise/share/config/accounts.reg...

Installing settings from /opt/likewise/share/config/dcerpcd.reg...

Installing settings from /opt/likewise/share/config/eventlogd.reg...

Installing settings from /opt/likewise/share/config/lsassd.reg...

Installing settings from /opt/likewise/share/config/lwiod.reg...

Installing settings from /opt/likewise/share/config/lwreg.reg...

Installing settings from /opt/likewise/share/config/netlogond.reg...

Installing settings from /opt/likewise/share/config/privileges.reg...

Installing settings from /opt/likewise/share/config/rdr.reg...

Starting service dependency: netlogon

Starting service dependency: lwio

Starting service dependency: rdr

Starting service: lsass

Installing/Updating: lightwave-client-libs-1.3.1-5.ph2.x86_64

Installing/Updating: pmd-libs-0.0.5-3.ph2.x86_64

Installing/Updating: pcre-8.40-4.ph2.x86_64

Installing/Updating: netmgmt-1.1.0-9.ph2.x86_64

Installing/Updating: c-rest-engine-1.0.4-3.ph2.x86_64

Installing/Updating: pmd-0.0.5-3.ph2.x86_64

Generating a 2048 bit RSA private key

................................+++

..+++

writing new private key to '/etc/pmd/server.key'

-----

Generating RSA private key, 2048 bit long modulus

..........................................................+++

...............................................................................................+++

e is 65537 (0x10001)

writing RSA key

 

Complete!

root@photon-machine [ ~ ]#

 

pmd サービスを起動します。

root@photon-machine [ ~ ]# systemctl start pmd

root@photon-machine [ ~ ]# systemctl enable pmd

root@photon-machine [ ~ ]# systemctl status pmd

● pmd.service - photon management daemon

   Loaded: loaded (/lib/systemd/system/pmd.service; enabled; vendor preset: enabled)

   Active: active (running) since Fri 2017-11-03 17:45:40 UTC; 4s ago

Main PID: 715 (pmd)

    Tasks: 18 (limit: 4915)

   CGroup: /system.slice/pmd.service

           mq715 /usr/bin/pmd

 

Nov 03 17:45:40 photon-machine systemd[1]: Started photon management daemon.

 

なぜか pmd サービスが起動できないことがあるのですが、

その場合は restServer.log ファイルのパーミッションが下記になっているか

確認してみるとよいと思います。

root@photon-machine [ ~ ]# ls -l /var/log/pmd/restServer.log

-rw-r--r-- 1 pmd pmd 0 Nov  3 17:45 /var/log/pmd/restServer.log

 

pmd-cli のインストール。

pmd-cli の RPM をインストールします。

すでに pmd で依存 PRM がインストール済みとなっているため

pmd-cli だけがインストールされます。

root@photon-machine [ ~ ]# tdnf install -y pmd-cli

 

Installing:

pmd-cli                  x86_64       0.0.5-3.ph2      photon        58.79k 60200

 

Total installed size:  58.79k 60200

 

Downloading:

pmd-cli                                  33148    100%

Testing transaction

Running transaction

Installing/Updating: pmd-cli-0.0.5-3.ph2.x86_64

 

Complete!

root@photon-machine [ ~ ]#

 

pmd-cli がインストールされました。

オプションなしで実行すると、help が見られます。

ネットワーク(net)、RPM パッケージ(pkg)、ユーザ(usr)、firewall の

情報確認や設定ができるようです。

そして pmd が起動しているリモートサーバに実行することもできます。

root@photon-machine [ ~ ]# pmd-cli

These are the current registered components

'firewall' : firewall management

'net' : network management

'pkg' : package management

'usr' : user management

You need to specify a component and a command

usage: pmd-cli [connection/auth options] <component> <command> [command options]

 

For local connections, use: pmd-cli <component> <cmd> <options>.

Current logged in user permissions will apply when executing commands.

This is the same as specifying --servername localhost.

For remote servers, use one of 3 methods mentioned below. Password is never sent out to the remote in any of the below auth scenarios.

When --user is specified, you will be prompted for password.

1. System user.

   pmd-cli --servername <server> --user <user>

2. Lightwave user (pmd server must be joined or should be part of embedded lightwave)

   pmd-cli --servername <server> --user <user> --domain <lightwave domain>

3. Kerberos spn (client must successfully run kinit before using this method)

   pmd-cli --servername <server> --spn <service principal name>

Error(805) : Unknown error

root@photon-machine [ ~ ]#

 

pmd-cli を実行してみる。

pmd-cli は、途中までのコマンドラインを実行することで下記のようにヘルプを見ながら操作できます。

root@photon-machine [ ~ ]# pmd-cli net

Unknown command net

Usage: netmgr command <command options ...>

 

For help: netmgr -h or netmgr --help

For version: netmgr -v or netmgr --version

 

List of commands:

 

link_info        get or set interface mac address, mtu, link state, or link mode

ip4_address      get or set interface IPv4 address and optionally default gateway

ip6_address      add or delete IPv6 address(es) and optionally default gateway for interface

ip_route         add or delete static IP route for the interface

dns_servers      get or set DNS mode, list of DNS servers

dns_domains      get or set list of DNS domains

dhcp_duid        get or set DHCP DUID, optionally per interface

if_iaid          get or set interface IAID

ntp_servers      get or set NTP servers list

hostname         get or set system hostname

wait_for_link    wait for the interface to come up

wait_for_ip      wait for the interface to acquire a valid IP address

error_info       get error information from error code

net_info         get or set network configuration parameters

set_duid         This is deprecated, will be removed in the future. Please use 'dhcp_duid --set'

set_iaid         This is deprecated, will be removed in the future. Please use 'if_iaid --set'

get_dns_servers  This is deprecated, will be removed in the future. Please use 'dns_servers --get'

Error(33) : Unknown error

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# pmd-cli net ip4_address

Usage:

ip4_address --get --interface <ifame>

ip4_address --set --interface <ifname> --mode dhcp|static|none --addr <IPv4Address/prefix> --gateway <Gateway Address>

Error(33) : Unknown error

root@photon-machine [ ~ ]#

 

IP アドレスの設定情報を表示してみました。

root@photon-machine [ ~ ]# pmd-cli net ip4_address --get --interface eth0

IPv4 Address Mode: dhcp

IPv4 Address=192.168.12.207/24

IPv4 Gateway=192.168.12.1

root@photon-machine [ ~ ]#

 

たとえば、RPM のインストールもできます。

ためしに jq コマンドの RPM をインストールしてみました。

root@photon-machine [ ~ ]# pmd-cli pkg install -y jq

 

Installing:

jq                       x86_64       1.5-3.ph2        photon       340.52k 348689

 

Total installed size: 340.52k 348689

 

Downloading:

 

Complete!

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# rpm -q jq

jq-1.5-3.ph2.x86_64

 

そして、pmd が起動している別の Photon OS にも jq をインストールしてみます。

これまでの pmd-cli の結果にあるように、このサーバは 192.168.12.207 ですが、

そこからリモート(192.168.12.208)の Photon に pmd-cli を実行してみます。

 

リモート(192.168.12.208)の Photon でも pmd を起動してあります。

root@photon-machine [ ~ ]# ssh root@192.168.12.208 "cat /etc/photon-release;systemctl is-active pmd"

Password:

VMware Photon OS 2.0

PHOTON_BUILD_NUMBER=304b817

active

root@photon-machine [ ~ ]#

 

ただ、これだけだと pmd-cli では接続できないようです。

root@photon-machine [ ~ ]# pmd-cli --servername 192.168.12.208 --user root pkg install -y jq

Password:

 

Error(382312513) : (null)

Error(382312513) : Failed to connect to the remote host, reason = rpc_s_connect_timed_out (0x16c9a041).

root@photon-machine [ ~ ]#

 

たまたまうちにあった Log Insight で NSX 分散ファイアウォールのログを取得できるので見てみると、

pmd-cli をリモート実行したタイミングで TCP 2016 番ポート宛のアクセスがあるようでした。

vrli-pmd-port.png

 

宛先 Photon 側(192.168.12.208)で見てみると、

たしかに pmd が TCP 2016番ポートをリスニングしています。

※さりげなくここで lsof と pmd-cli をインストールしています。

root@photon-machine [ ~ ]# ip a | grep 192

    inet 192.168.12.208/24 brd 192.168.12.255 scope global dynamic eth0

root@photon-machine [ ~ ]# tdnf install -y --quiet lsof pmd-cli

root@photon-machine [ ~ ]# lsof -i -P | grep pmd

pmd       690             pmd    4u  IPv4   8867      0t0  TCP *:2081 (LISTEN)

pmd       690             pmd    5u  IPv6   8868      0t0  TCP *:2081 (LISTEN)

pmd       690             pmd   10u  IPv4   8886      0t0  TCP *:2016 (LISTEN)

pmd       690             pmd   11u  IPv6   8888      0t0  TCP *:2016 (LISTEN)

 

Photon の iptables でそのポートは解放されていないので、

今回は pmd-cli firewall ~ のローカル実行でポートを開放してしまいます。

pmd は TCP 2081 番もリスニングしていますが、ファイアウォールのログでは通信がなかったので

今回は 2016 番だけ解放してみました。

root@photon-machine [ ~ ]# pmd-cli net ip4_address --get --interface eth0

IPv4 Address Mode: dhcp

IPv4 Address=192.168.12.208/24

IPv4 Gateway=192.168.12.1

root@photon-machine [ ~ ]# pmd-cli firewall rules --chain INPUT --add "-p tcp -m tcp --dport 2016 -j ACCEPT"

root@photon-machine [ ~ ]#

 

iptables のポートを開放すると、192.168.12.207 から pmd-cli をリモート実行できました。

root@photon-machine [ ~ ]# pmd-cli net ip4_address --get --interface eth0

IPv4 Address Mode: dhcp

IPv4 Address=192.168.12.207/24

IPv4 Gateway=192.168.12.1

root@photon-machine [ ~ ]# pmd-cli --servername 192.168.12.208 --user root pkg install -y jq

Password:

 

Installing:

jq                       x86_64       1.5-3.ph2        photon       340.52k 348689

 

Total installed size: 340.52k 348689

 

Downloading:

 

Complete!

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# ssh root@192.168.12.208 jq -V

Password:

jq-1.5

root@photon-machine [ ~ ]#

 

エラーメッセージを見ると rpc とあるので 2016 版ポートの解放でしたが、

設定ファイルをみると REST でのアクセスの場合は 2081 の解放が必要かもしれません。

root@photon-machine [ ~ ]# cat /etc/pmd/pmd.conf

[main]

#not an rpmostree server

servertype=0

apisecurity=/etc/pmd/api_sddl.conf

roledir=/etc/javelin.roles.d

rolepluginsdir=/etc/javelin.roles.plugins.d

 

[rest-server]

enabled=1

port=2081

apispec=/etc/pmd/restapispec.json

 

[rpc-server]

enabled=1

port=2016

 

[privsep]

pubkey=/etc/pmd/privsep_pub.key

privkey=/etc/pmd/privsep_priv.key

 

簡単にまとめると、pmd-cli の実行には・・・

  • pmd サービスが起動している必要がある。
  • リモート実行の場合は、iptables の TCP 2016 番ポートの解放が必要。
    (もしくは systemctl stop iptables)

 

ちなみに、pmd-cli net ~ のリモード実行はなぜかうまくいかないようです。

ひきつづき Photon OS 2.0 で いろいろと試してみたいと思います。

 

以上、PMD / pmd-cli を使用してみる話でした。

最近 GA になった Photon OS 2.0 に、ansible をインストールしてみました。

 

GA のときの投稿はこちらをどうぞ・・・

VMware Photon OS 2.0 が GA になりました。

 

今回はダウンロードサイトにある OVA with virtual hardware v13 (ESX 6.5 and above) を利用しています。

 

Ansible 実行サーバへの ansible インストール。

まず、root / changeme でログイン&パスワード変更をして、

わかりやすくホスト名(今回は ph20-ansible)を変更しておきます。

You are required to change your password immediately (administrator enforced)

Last login: Fri Nov  3 01:04:03 2017 from 192.168.1.XXX

Changing password for root.

Current password: ★デフォルトはchangeme

New password:  ★変更するパスワードを入力。

Retype new password:

01:04:23 up 35 min,  0 users,  load average: 0.00, 0.00, 0.00

tdnf update info not available yet!

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# cat /etc/photon-release

VMware Photon OS 2.0

PHOTON_BUILD_NUMBER=304b817

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# hostnamectl set-hostname ph20-ansible

root@photon-machine [ ~ ]# su -

root@ph20-ansible [ ~ ]#

 

Photon OS のリポジトリに、ansible が用意されています。

root@ph20-ansible [ ~ ]# tdnf list ansible

ansible.noarch                              2.4.0.0-1.ph2             photon

 

インストールしてみると、依存関係により python2 もインストールされます。

ちなみに、デフォルトだと Python 3 だけがインストールされています。

root@ph20-ansible [ ~ ]# tdnf install -y ansible

 

Installing:

python2-libs             x86_64       2.7.13-10.ph2    photon        15.49M 16239329

python2                  x86_64       2.7.13-10.ph2    photon         1.85M 1936323

ansible                  noarch       2.4.0.0-1.ph2    photon        54.13M 56762546

 

Total installed size:  71.47M 74938198

 

Downloading:

ansible                                9680670    100%

python2                                 779030    100%

python2-libs                           5952811    100%

Testing transaction

Running transaction

Installing/Updating: python2-libs-2.7.13-10.ph2.x86_64

Installing/Updating: python2-2.7.13-10.ph2.x86_64

Installing/Updating: ansible-2.4.0.0-1.ph2.noarch

 

Complete!

root@ph20-ansible [ ~ ]#

 

しかし、これだけでは Ansible 関連のコマンドを実行できませんでした。

root@ph20-ansible [ ~ ]# ansible --version

Traceback (most recent call last):

  File "/bin/ansible", line 40, in <module>

    import ansible.constants as C

  File "/usr/lib/python2.7/site-packages/ansible/constants.py", line 15, in <module>

    from ansible.config.manager import ConfigManager, ensure_type

  File "/usr/lib/python2.7/site-packages/ansible/config/manager.py", line 11, in <module>

    import yaml

ImportError: No module named yaml

root@ph20-ansible [ ~ ]#

 

Photon OS 2.0 の RPM の依存関係が十分でないためか、さらに RPM の追加が必要です。

すくなくとも YAML、jinja2 が不足しているようなので追加インストールします。

Python3 ではなく Python2 で利用するため、PyYAML と python-jinja2 をインストールします。

root@ph20-ansible [ ~ ]# tdnf install -y PyYAML python-jinja2

 

Installing:

python-markupsafe        x86_64       1.0-3.ph2        photon        61.48k 62953

python-jinja2            noarch       2.9.5-6.ph2      photon         1.95M 2044146

PyYAML                   x86_64       3.12-2.ph2       photon       622.06k 636988

 

Total installed size:   2.62M 2744087

 

Downloading:

PyYAML                                  198440    100%

python-jinja2                           697669    100%

python-markupsafe                        29704    100%

Testing transaction

Running transaction

Installing/Updating: python-markupsafe-1.0-3.ph2.x86_64

Installing/Updating: python-jinja2-2.9.5-6.ph2.noarch

Installing/Updating: PyYAML-3.12-2.ph2.x86_64

 

Complete!

root@ph20-ansible [ ~ ]#

 

これで ansible コマンドは実行できるようになりました。

root@ph20-ansible [ ~ ]# ansible --version

ansible 2.4.0.0

  config file = None

  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

  ansible python module location = /usr/lib/python2.7/site-packages/ansible

  executable location = /bin/ansible

  python version = 2.7.13 (default, Oct 26 2017, 01:54:36) [GCC 6.3.0]

root@ph20-ansible [ ~ ]#

 

ということで、ansible をインストールする場合は、すくなくとも下記のパッケージが必要そうです。

# tdnf install -y ansible PyYAML python-jinja2

 

Ansible を別の Photon OS に実行してみる。

それでは、別の Photon OS に Ansible でコマンド実行してみます。

 

まず、SSH の鍵ファイルを作成しておきます。

root@ph20-ansible [ ~ ]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Generating public/private rsa key pair.

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

 

Ansible でコマンド実行する Photon(今回は 192.168.12.205)に公開鍵をコピーしておきます。

今回は、初回の root パスワード変更も一緒に実施しています。

root@ph20-ansible [ ~ ]# ssh-copy-id root@192.168.12.205

/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

The authenticity of host '192.168.12.205 (192.168.12.205)' can't be established.

ECDSA key fingerprint is SHA256:gnXBYqCxVbxQ6VlSExsLIi+tFkAB6YlIU6KxYqrKtoY.

Are you sure you want to continue connecting (yes/no)? yes

/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

Password: ★changeme

You are required to change your password immediately (administrator enforced)

Changing password for root.

Current password: ★changeme

New password: ★新パスワードを入力。

Retype new password: ★新パスワードを再入力。

 

Number of key(s) added: 1

 

Now try logging into the machine, with:   "ssh 'root@192.168.12.205'"

and check to make sure that only the key(s) you wanted were added.

 

root@ph20-ansible [ ~ ]#

 

Ansible のインベントリファイルを作成しておきます。

今回は、下記の内容だけ記載しています。

[targets]

192.168.12.205

 

下記のように作成しました。

root@ph20-ansible [ ~ ]# cat << EOF > hosts

> [targets]

> 192.168.12.205

> EOF

root@ph20-ansible [ ~ ]# cat ./hosts

[targets]

192.168.12.205

 

接続確認してみると、相手の Photon にパスの通った python がなくて失敗しました。

root@ph20-ansible [ ~ ]# ansible -i ./hosts -m ping 192.168.12.205

192.168.12.205 | FAILED! => {

    "changed": false,

    "failed": true,

    "module_stderr": "Shared connection to 192.168.12.205 closed.\r\n",

    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n",

    "msg": "MODULE FAILURE",

    "rc": 0

}

 

たしかに、相手の Photon(192.168.12.205)にはまだ python2 をインストールしておらず

デフォルトでは python 3 しかないので・・・

root@photon-machine [ ~ ]# ip a | grep 192

    inet 192.168.12.205/24 brd 192.168.12.255 scope global dynamic eth0

root@photon-machine [ ~ ]# rpm -qa | grep python

python3-libs-3.6.1-9.ph2.x86_64

python3-six-1.10.0-8.ph2.noarch

python3-jinja2-2.9.5-6.ph2.noarch

python3-prettytable-0.7.2-6.ph2.noarch

python3-jsonpatch-1.15-4.ph2.noarch

python3-requests-2.13.0-3.ph2.noarch

python3-PyYAML-3.12-2.ph2.x86_64

python3-3.6.1-9.ph2.x86_64

python3-markupsafe-1.0-3.ph2.x86_64

python3-configobj-5.0.6-4.ph2.noarch

python3-xml-3.6.1-9.ph2.x86_64

python3-jsonpointer-1.10-6.ph2.noarch

python3-oauthlib-2.0.2-3.ph2.noarch

python3-setuptools-3.6.1-9.ph2.noarch

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# python

-bash: python: command not found

root@photon-machine [ ~ ]# python3 -V

Python 3.6.1

 

実行先に python2 をインストールしてしまいます。

 

実は Photon OS 2.0 では、yum コマンドが tdnf の RPM に含まれていて

デフォルトで yum コマンドも実行できるようになっています。

root@photon-machine [ ~ ]# which yum

/usr/bin/yum

root@photon-machine [ ~ ]# rpm -qf /usr/bin/yum

tdnf-1.2.2-2.ph2.x86_64

 

ということで、yum で python2 をインストールしておきます。

root@photon-machine [ ~ ]# yum install -y python2

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64)'

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64) Updates'

Refreshing metadata for: 'VMware Photon Extras 2.0(x86_64)'

photon-extras                              106    100%

Installing:

python2-libs             x86_64       2.7.13-10.ph2    photon        15.49M 16239329

python2                  x86_64       2.7.13-10.ph2    photon         1.85M 1936323

 

Total installed size:  17.33M 18175652

 

Downloading:

python2                                 779030    100%

python2-libs                           5952811    100%

Testing transaction

Running transaction

Installing/Updating: python2-libs-2.7.13-10.ph2.x86_64

Installing/Updating: python2-2.7.13-10.ph2.x86_64

 

Complete!

root@photon-machine [ ~ ]#

root@photon-machine [ ~ ]# which python

/usr/bin/python

 

これで Ansible で接続テストがとおりるようになります。

root@ph20-ansible [ ~ ]# ansible -i ./hosts -m ping 192.168.12.205

192.168.12.205 | SUCCESS => {

    "changed": false,

    "failed": false,

    "ping": "pong"

}

 

ためしに、下記のような Ansible Playbook を実行してみました。

※最初にお伝えしておくと、これは yum が微妙なことになります。

root@ph20-ansible [ ~ ]# cat docker-host.yml

---

- name: setup Docker host.

  hosts: targets

  remote_user: root

  tasks:

 

  - name: install Docker package.

    yum:

      name: docker

      state: latest

 

  - name: start docker service.

    service:

      name: docker

      state: started

      enabled: yes

 

しかし Ansible で yum モジュールを利用しようとすると、
Python2 むけの「yum」モジュール不足になりました。

root@ph20-ansible [ ~ ]# ansible-playbook -i hosts docker-host.yml

 

PLAY [setup Docker host.] ******************************************************

 

TASK [Gathering Facts] *********************************************************

ok: [192.168.12.205]

 

TASK [install Docker package.] *************************************************

fatal: [192.168.12.205]: FAILED! => {"changed": false, "failed": true, "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this  module"}

        to retry, use: --limit @/root/docker-host.retry

 

PLAY RECAP *********************************************************************

192.168.12.205             : ok=1    changed=0    unreachable=0    failed=1

 

root@ph20-ansible [ ~ ]#

 

ちなみに Photon 2.0 では yum と tdnf の RPM が競合しています。

tdnf が保護されているので、yum の RPM のインストールは難しそうです。

root@photon-machine [ ~ ]# tdnf install -y yum

Error(1030) : The operation would result in removing the protected package : tdnf

 

かわりに command モジュールなどで yum コマンドを実行する感じになってしまうかもしれません。

毎回 changed になってしまう雑な感じですが・・・

root@ph20-ansible [ ~ ]# cat docker-host.yml

---

- name: setup Docker host.

  hosts: targets

  remote_user: root

  tasks:

 

  - name: docker RPM install.

    command: bash -c "rpm -q {{ item }} || tdnf install -y {{ item }}"

    with_items:

    - docker

 

  - name: start docker service.

    service:

      name: docker

      state: started

      enabled: yes

 

root@ph20-ansible [ ~ ]# ansible-playbook -i hosts docker-host.yml

 

PLAY [setup Docker host.] ******************************************************

 

TASK [Gathering Facts] *********************************************************

ok: [192.168.12.205]

 

TASK [docker RPM install.] *****************************************************

changed: [192.168.12.205] => (item=docker)

 

TASK [start docker service.] ***************************************************

ok: [192.168.12.205]

 

PLAY RECAP *********************************************************************

192.168.12.205             : ok=3    changed=1    unreachable=0    failed=0

 

root@ph20-ansible [ ~ ]#

 

簡単にここまで気づいた Photon OS 2.0 + ansible をまとめると・・・

  • Ansible 実行サーバには、ansible だけでなく PyYAML python-jinja2 など、他にも RPM が必要。
    python2 は、ansible の依存関係でインストールされる。
  • Ansible のターゲットになるサーバには、少なくとも python2 がいるので、
    VM のテンプレートなどに入れておいた方がよさそう。
  • デフォルトで yum コマンドは利用できるが、ansible からは利用が困難そうで、
    rpm インストールには工夫が必要そう。

 

何となく Photon OS 2.0 でのパッケージ管理については ansible より

PMD / pmd-cli や cloud-init を利用したほうがよいのかもしれないとも思えました。

 

以上、Photon OS 2.0 で ansible を利用してみる話でした。

とうとう Photon OS 2.0 が GA になりました。

 

What is New in Photon OS 2.0 · vmware/photon Wiki · GitHub

 

すでに ISO と OVA ファイルもダウンロード可能になっています。

Downloading Photon OS · vmware/photon Wiki · GitHub

 

ということで、photon-custom-hw13-2.0-304b817.ova をデプロイしてみました。

photon20-ga-1.png

 

これまでどおり root は初期パスワード chageme でログインできます。

photon-release のバージョンも 2.0 になっています。

root@photon-machine [ ~ ]# cat /etc/photon-release

VMware Photon OS 2.0

PHOTON_BUILD_NUMBER=304b817

root@photon-machine [ ~ ]# uname -r

4.9.53-5.ph2-esx

 

色々アップデートがある中、さっそく VMworld や vForum Tokyo でささやかに話題にあがっていた

Wavefront へメトリクス情報を送付するパッケージも含まれるようになったようです。

※上記の What is New より

New packages, including Calico, Heapster, nginx-ingress, RabbitMQ, and the proxy for Wavefront by VMware

 

これかな? と思います。

root@photon-machine [ ~ ]# tdnf search wavefront

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64)'

Refreshing metadata for: 'VMware Photon Linux 2.0(x86_64) Updates'

Refreshing metadata for: 'VMware Photon Extras 2.0(x86_64)'

wavefront-proxy : lightweight java application to send metrics to.

root@photon-machine [ ~ ]# tdnf info wavefront-proxy

Name          : wavefront-proxy

Arch          : noarch

Epoch         : 0

Version       : 4.16

Release       : 4.ph2

Install Size  :  29.28M 30706698 (30706698)

Repo          : photon

Summary       : lightweight java application to send metrics to.

URL           : https://github.com/wavefrontHQ/java

License       : Apache 2.0

Description   : The Wavefront proxy is a light-weight Java application that you send your metrics to.

It handles authentication and the transmission of your metrics to your Wavefront instance.

 

 

Total Size:  29.28M 30706698 (30706698)

 

ちなみに OVA は、ESXi / VMware Workstation むけのものでも

デプロイするとすでに cloud-init が仕込まれている状態でした。

root@photon-machine [ ~ ]# rpm -q cloud-init

cloud-init-0.7.9-13.ph2.noarch

root@photon-machine [ ~ ]# systemctl is-active cloud-init

active

 

初回起動時に、それっぽい様子が見うけられました。

photon20-ga-2.png

 

これから色々と利用してみようと思います。

 

以上、Photon OS 2.0 が GA された話でした。