今回はこの仕組みを利用して、ゲスト OS の設定を変更してみます。
Oracle VMリリース3.4の管理者ガイド
7.7 Oracle VMテンプレート構成スクリプトおよびモジュール
https://docs.oracle.com/cd/E90714_01/e88293/vmadm-guestadd-template.html
ovm-template-config のインストール。
ゲスト OS に、RPM でインストールします。
今回も Oracle Linux 7.4 です。
[root@adv25 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.4
[root@adv25 ~]# yum install --enablerepo=ol7_addons -y ovm-template-config
読み込んだプラグイン:ulninfo
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ovm-template-config.noarch 0:3.7-5.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
ovm-template-config noarch 3.7-5.el7 ol7_addons 40 k
トランザクションの要約
================================================================================
インストール 1 パッケージ
総ダウンロード容量: 40 k
インストール容量: 126 k
Downloading packages:
ovm-template-config-3.7-5.el7.noarch.rpm | 40 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : ovm-template-config-3.7-5.el7.noarch 1/1
検証中 : ovm-template-config-3.7-5.el7.noarch 1/1
インストール:
ovm-template-config.noarch 0:3.7-5.el7
完了しました!
[root@adv25 ~]#
そして ovm-template-config には、設定要素ごとに RPM が用意されています。
[root@adv25 ~]# yum list --enablerepo=ol7_addons ovm-template-config-*
読み込んだプラグイン:ulninfo
インストール済みパッケージ
ovm-template-config.noarch 3.7-5.el7 @ol7_addons
利用可能なパッケージ
ovm-template-config-authentication.noarch 3.7-5.el7 ol7_addons
ovm-template-config-datetime.noarch 3.7-5.el7 ol7_addons
ovm-template-config-firewall.noarch 3.7-5.el7 ol7_addons
ovm-template-config-network.noarch 3.7-5.el7 ol7_addons
ovm-template-config-selinux.noarch 3.7-5.el7 ol7_addons
ovm-template-config-ssh.noarch 3.7-5.el7 ol7_addons
ovm-template-config-system.noarch 3.7-5.el7 ol7_addons
ovm-template-config-user.noarch 3.7-5.el7 ol7_addons
[root@adv25 ~]#
まとめてインストールします。
[root@adv25 ~]# yum install --enablerepo=ol7_addons -y ovm-template-config-*
インストールされた RPM です。
[root@adv25 ~]# rpm -qa --queryformat '%{name}\n' | grep ovm-template-config-
ovm-template-config-selinux
ovm-template-config-firewall
ovm-template-config-ssh
ovm-template-config-user
ovm-template-config-authentication
ovm-template-config-network
ovm-template-config-system
ovm-template-config-datetime
[root@adv25 ~]#
実は、RPM あたりスクリプトファイルが1つだけ含まれています。
[root@adv25 ~]# rpm -qa --queryformat '%{name}\n' | grep ovm-template-config- | while read L
> do
> echo "--- $L"
> rpm -ql $L
> done
--- ovm-template-config-selinux
/etc/template.d/scripts/selinux
--- ovm-template-config-firewall
/etc/template.d/scripts/firewall
--- ovm-template-config-ssh
/etc/template.d/scripts/ssh
--- ovm-template-config-user
/etc/template.d/scripts/user
--- ovm-template-config-authentication
/etc/template.d/scripts/authentication
--- ovm-template-config-network
/etc/template.d/scripts/network
--- ovm-template-config-system
/etc/template.d/scripts/system
--- ovm-template-config-datetime
/etc/template.d/scripts/datetime
[root@adv25 ~]#
/etc/template.d 配下のスクリプトは、ovm-chkconfig で管理されます。
これは chkconfig に似せてあるようです。
基本的に、configure、cleanup だけが利用されています。
[root@adv25 ~]# ovm-chkconfig --list
name configure unconfigure reconfigure cleanup suspend resume migrate shutdown
authentication on:90 off off on:10 off off off off
datetime on:50 off off on:50 off off off off
firewall on:41 off off off off off off off
network on:50 off off on:50 off off off off
selinux on:30 off off off off off off off
ssh on:70 off off on:30 off off off off
system on:60 off off on:60 off off off off
user on:60 off off on:40 off off off off
[root@adv25 ~]#
ovm-template-config スクリプトの RPM を作成してみる。
ovm-template-config の仕様にそったスクリプトの RPM を作成してみます。
まず、git と rpm-build をインストールしておきます。
(git は、今回 GitHub にファイルを配置したためです。)
[root@adv25 ~]# yum install -y git rpm-build
今回は、下記のファイルを作成しました。
ただ /etc/motd ファイルを編集するだけのスクリプトです。
GitHub: gowatana/ovm-template-config-jpougadv
https://github.com/gowatana/ovm-template-config-jpougadv
- jpougadv: ovm-template-config に対応した Python スクリプト。
- ovm-template-config-jpougadv.spec: RPM の SPEC ファイル。
- Makefile: RPM のビルドで利用する make ファイル。
RPM を生成します。※出力は省略しています。
[gowatana@adv25 ~]# git clone https://github.com/gowatana/ovm-template-config-jpougadv.git
[gowatana@adv25 ~]# cd ovm-template-config-jpougadv/
[gowatana@adv25 ovm-template-config-jpougadv]# make dist
[gowatana@adv25 ovm-template-config-jpougadv]# make rpm
下記のように、tar.gz ファイルと・・・
[gowatana@adv25 ovm-template-config-jpougadv]$ ls -l
合計 16
-rw-rw-r--. 1 gowatana gowatana 868 12月 25 20:04 Makefile
-rw-rw-r--. 1 gowatana gowatana 1289 12月 25 20:04 jpougadv
-rw-rw-r--. 1 gowatana gowatana 1424 12月 25 20:04 ovm-template-config-jpougadv-1.0.tar.gz
-rw-rw-r--. 1 gowatana gowatana 869 12月 25 20:04 ovm-template-config-jpougadv.spec
RPM が作成されます。
[gowatana@adv25 ovm-template-config-jpougadv]$ ls -Rl ~/rpmbuild
/home/gowatana/rpmbuild:
合計 0
drwxr-xr-x. 3 gowatana gowatana 46 12月 25 20:04 BUILD
drwxr-xr-x. 2 gowatana gowatana 6 12月 25 20:04 BUILDROOT
drwxr-xr-x. 3 gowatana gowatana 20 12月 25 20:04 RPMS
drwxr-xr-x. 2 gowatana gowatana 6 12月 25 20:04 SOURCES
drwxr-xr-x. 2 gowatana gowatana 6 12月 25 20:04 SPECS
drwxr-xr-x. 2 gowatana gowatana 60 12月 25 20:04 SRPMS
/home/gowatana/rpmbuild/BUILD:
合計 0
drwxr-xr-x. 2 gowatana gowatana 79 12月 25 20:04 ovm-template-config-jpougadv-1.0
/home/gowatana/rpmbuild/BUILD/ovm-template-config-jpougadv-1.0:
合計 12
-rw-r--r--. 1 gowatana gowatana 868 12月 25 20:04 Makefile
-rw-r--r--. 1 gowatana gowatana 1289 12月 25 20:04 jpougadv
-rw-r--r--. 1 gowatana gowatana 869 12月 25 20:04 ovm-template-config-jpougadv.spec
/home/gowatana/rpmbuild/BUILDROOT:
合計 0
/home/gowatana/rpmbuild/RPMS:
合計 0
drwxr-xr-x. 2 gowatana gowatana 63 12月 25 20:04 noarch
/home/gowatana/rpmbuild/RPMS/noarch:
合計 4
-rw-rw-r--. 1 gowatana gowatana 3124 12月 25 20:04 ovm-template-config-jpougadv-1.0-1.el7.noarch.rpm
/home/gowatana/rpmbuild/SOURCES:
合計 0
/home/gowatana/rpmbuild/SPECS:
合計 0
/home/gowatana/rpmbuild/SRPMS:
合計 4
-rw-rw-r--. 1 gowatana gowatana 3956 12月 25 20:04 ovm-template-config-jpougadv-1.0-1.el7.src.rpm
[gowatana@adv25 ovm-template-config-jpougadv]$
作成した RPM の情報です。
/etc/template.d/scripts/jpougadv というクリプト ファイルが 1つだけ含まれます。
[gowatana@adv25 ~]$ rpm -qpl /home/gowatana/rpmbuild/RPMS/noarch/ovm-template-config-jpougadv-1.0-1.el7.noarch.rpm
/etc/template.d/scripts/jpougadv
[gowatana@adv25 ~]$ rpm -qpi /home/gowatana/rpmbuild/RPMS/noarch/ovm-template-config-jpougadv-1.0-1.el7.noarch.rpm
Name : ovm-template-config-jpougadv
Version : 1.0
Release : 1.el7
Architecture: noarch
Install Date: (not installed)
Group : Unspecified
Size : 1289
License : GPL
Signature : (none)
Source RPM : ovm-template-config-jpougadv-1.0-1.el7.src.rpm
Build Date : 2017年12月25日 20時04分51秒
Build Host : adv25
Relocations : (not relocatable)
URL : https://gowatana.blogspot.jp/2017/12/ovm-template-config.html
Summary : Oracle VM template jpougadv configuration script.
Description :
Oracle VM template JPOUG Advent Calendar message configuration script.
[gowatana@adv25 ~]$
root ユーザで、RPM をインストールしてみます。
[root@adv25 ~]# yum install -y /home/gowatana/rpmbuild/RPMS/noarch/ovm-template-config-jpougadv-1.0-1.el7.noarch.rpm
ovm-chkconfig にスクリプトが追加されました。
[root@adv25 ~]# ovm-chkconfig --list jpougadv
name configure unconfigure reconfigure cleanup suspend resume migrate shutdown
jpougadv on:55 off off on:55 off off off off
[root@adv25 ~]#
このスクリプトによって、ovm-template-config による configure / cleanup ができます。
[root@adv25 ~]# cat /etc/motd
[root@adv25 ~]# ovm-template-config --console-input --script jpougadv configure
[root@adv25 ~]# cat /etc/motd
=========================================
JPOUG Advent Calendar 2017
https://jpoug.doorkeeper.jp/events/67051
=========================================
[root@adv25 ~]# ovm-template-config --console-input --script jpougadv cleanup
[root@adv25 ~]# cat /etc/motd
[root@adv25 ~]#
ovm-template-config スクリプトを利用してみます。
初回起動時の構成を実行するときに ovmd が利用されるので、
下記のようにインストールしておきます。
ここまでで作成した ovm-template-config-jpougadv の RPM もインストールしておきます。
ovm-template-config の対象になる OS の設定をクリーンアップします。
[root@custom-vm-0 ~]# ovmd -s cleanup
ovm-template-initial-config の初回起動時の構成を有効にします。
Oracle Linux 6.x の頃は「service ovmd enable-initial-config」で有効にできましたが、
Oracle Linux 7.x では sed で直接ファイルを編集してしまいます。
この設定は、初期セットアップの処理の中で no に戻されます。
(ちなみに OL6 の /etc/init.d/ovmd スクリプトでも同様の方法でした。)
[root@custom-vm-0 ~]# grep ^INITIAL_CONFIG /etc/sysconfig/ovm-template-initial-config
INITIAL_CONFIG=no
[root@custom-vm-0 ~]# sed -i 's/^INITIAL_CONFIG=.*/INITIAL_CONFIG=yes/g' /etc/sysconfig/ovm-template-initial-config
[root@custom-vm-0 ~]# grep ^INITIAL_CONFIG /etc/sysconfig/ovm-template-initial-config
INITIAL_CONFIG=yes
ovm-template-initial-config サービスが有効になっていることを確認します。
[root@custom-vm-0 ~]# systemctl is-enabled ovm-template-initial-config
enabled
OS 再起動後の初期セットアップが終わってからログインすると、
/etc/motd の編集により下記のようにメッセージが表示されるようになります。
Last login: Mon Dec 25 11:58:12 2017 from 192.168.1.197
=========================================
JPOUG Advent Calendar 2017
https://jpoug.doorkeeper.jp/events/67051
=========================================
[root@custom-vm-0 ~]#
以上、Oracle VM の ovm-template-config のスクリプトを利用してみる話でした。
0 件のコメント:
コメントを投稿