yum -y install httpd php php-mbstring systemctl start httpd systemctl enable httpd firewall-cmd --list-all firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
この画面は、簡易表示です
yum -y install httpd php php-mbstring systemctl start httpd systemctl enable httpd firewall-cmd --list-all firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
yum -y groupinstall base “Development tools”
yum -y update
yum -y install yum-cron
/etc/yum/yum-cron.conf 設定
⇒ apply_updates = no yes
systemctl start yum-cron
systemctl enable yum-cron
yum install epel-release
yum update
学習目的で利用。
ダウンロード先:巨大なZIPファイル
インストレーション・ガイド:必読書。Windows版の方が多分楽。
引用: Oracle Technology Network
そんな訳でtnsnames.oraに プラガブル・データベース への接続設定が必要。
でも、A5の 直接接続ならサービス名( つまり{PDB名} )で接続するように指定すればいいだけかな?
でも、コマンドは面倒なので
再起動すると、 https://サーバー:5500/em も開けた。
ところがメニューはコンテナデータベース( CDB )のまま。CDBではユーザが作れないのでメニューからプラガブル・データベース(PDB)へ切り替えたいが、そんな方法は無いらしい。
ググってみると、PDB用のemが作れる様だ。
NAME | OPEN_MODE | PORT |
PDB1 | READ WRITE | 5504 |
PDB2 | MOUNTED | |
PDB$SEED | READ ONLY |
これで、【セキュリティ】⇒【ユーザ】画面で[ユーザの作成]のウィザードがまともに使えるようになる。ロールはザッくりな感じで。
こんなSQLを流してみると、
DROP PUBLIC SYNONYM SAMPLE1;
CREATE TABLE AAAAAA.SAMPLE1 (
ID VARCHAR(10) not null,
NAME VARCHAR(30),
ADDRESS VARCHAR(255),
MEMO VARCHAR(255)
);
SELECT * from AAAAAA.SAMPLE1;
CREATE PUBLIC SYNONYM SAMPLE1 FOR AAAAAA.SAMPLE1;
SELECT * FROM SAMPLE1;
INSERT INTO SAMPLE1 VALUES('a','b','c','');
INSERT INTO SAMPLE1 VALUES('A','B','C','');
UPDATE SAMPLE1 SET ID='aAA',NAME='bBB',ADDRESS='cCC',MEMO='***###' WHERE ID='a';
SELECT * FROM SAMPLE1;
DELETE SAMPLE1 WHERE ID='b';
SELECT * FROM SAMPLE1;
シノニムがめんどくさい。
19cの方がインストーラが日本語表示してくれるようだが、
設定方法が悪かったのか、インスト時にデータベースも作ろうとすると
5500ポートが使用中とかで失敗してしまう。
それでプログラムだけインストして、
binのdbcaでデータベースを作るとemが起動しない。
select dbms_xdb_config.getHttpsPort() from dual; が
DBMS_XDB_CONFIG.GETHTTPSPORT() |
0 |
なので、
exec dbms_xdb_config.sethttpsport(5500);
pdb1の分も作ってみる。
ALTER SESSION SET CONTAINER=pdb1;
exec dbms_xdb_config.sethttpsport(5504);
SELECT c.name,c.open_mode,e.port FROM v$pdbs c, xdb.xdb$cdbports e WHERE c.con_id = e.pdb (+);では見えないが、
select dbms_xdb_config.getHttpsPort() from dual;で設定を確認。
firewall-cmd –add-port=5500/tcp –permanent
firewall-cmd –add-port=5504/tcp –permanent
firewall-cmd –reload
見えなかったら rebootしてみるといいかも。
あれ?メニューがPerformanceだけ。
マニュアル読んで、全部やりなおしかな?
あるインストーラがX-Windowで動いちゃうのでメンドクサイと思いながら
yum -y groupinstall “KDE Plasma Workspaces”
しました。
でも、調べ物はWindowsでやっているので、2つのキーボードとマウスを使い分けるのが、やはり面倒。
とは云うものの以前にvncやspiceとか使ってみた感じでは…
CentOS側で事前にX-Windowsが動かしておいて
コッソリ覗き見している感じだったから、
事前準備が全て整っている必要があり
起動までが面倒だった。※サーバーを動きっぱなしにするのは必然。
当然、いくつも繋ぎっぱなしにしようとすると、
ポートの割振りが必要だったり、パッケージのSSLの扱いも豆に変わてたりしてて、暫く使わないと、パッケージの自動アップデートで動作が安定せず 右往左往してしまい、 電源入れっぱなしと云うこともあり次第に使わなくなっていた。
でも今では Windowsのリモートディスクトップ からLinuxのX-Windowに繋いでしまうパッケージXRDPが出ていた。これは楽そうだ。
但し、同じユーザで複数ログインしても、画面コピーになるので無駄。
※でも、やり様はあるのかもしれない。
無論CentOS側の負担は半端ないけどね。(笑
Cleron G3900にはチョット厳しい様だ。
初期設定はUSだけど
・[アプリケーション]⇒[設定]⇒[システム設定]⇒[国・言語]⇒[ロケール]で日本・日本語に変えて再起動。
・IBus-kkcがインスト済みでタスクバーに[JA]か[あ]表示があるハズ。
無ければ [アプリケーション]⇒[設定]⇒ [入力メソッドのセレクター]でIBusを有効にすれば、Windowsキー+スペースでかな漢字変換をON/OFFできる。
・ターミナルは [アプリケーション]⇒[システム] の中。
・画面の解像度は [アプリケーション]⇒[設定]⇒[システム設定]でスクロールバーを下げていくと[ハードウェア]が出てくるので[ディスプレイとモニタ]でDisplay Configurationを選び画面右のスクリーンの絵中の4つの矢印が描かれたアイコンをクリックすると使える解像度から選べる。
ここまで羅列すれば困らないかなぁ~(不慣れスギ
あ、そうそう、Windowsのリモートディスクトップを閉じてもログアウトしないから、ちゃんとログアウトした方がいいかもしれない。うっかりシャットダウンを選ぶと「30秒後にその様」になります。※キャンセル可。
postgresqlを普通にyumでインストすると9.2.xなので
本家のRPMを追加して11.xをインストしてみた。
すると、phpPgAdminからログインできなくなった。
どうやら、pg_hba.confに
local all all peer
があると、 su – postgres 以外の接続を嫌うご様子。でも・・・
local template1 postgres trust
を手前に付けておけばOK。※でも非常に不安~
無事ログインできた?
おや?
白い画面?
このバージョンの PostgreSQL はサポートしていません。バージョン 以上にアップグレードしてください。
ドコにあるんだ!と思ったら、5.6は対応しているらしい。
yumは5.1なので、公式からzipをDLし、/usr/share ※/root下はダメだった。に解凍し、URLを繋ぎ直してみると、
Configuration error: Copy conf/config.inc.php-dist to conf/config.inc.php and edit appropriately.
yum じゃないから設定からはじめないとイケナいが、でもコピるだけ。
ログインが許可されませんでした。
フリダシに戻った気がしたが、
$conf[‘extra_login_security’] = false;
を忘れていただけだったと思ったけど甘かった。
何かクリックするとログインに戻されてしまう。
詰めが甘い?
よーくみると・・・左のツリーメニューに
読み込み中のエラーです。 database.php?subject=database=%3A5432%3Aallow&action=tree&database=postgres(200: OK)
ぐぐってみると、PHPのエラーを全て無視させればOKらしい。
結果: 効果無し。
PHPのログからはロクな情報が得られなかったが、
postgresqlのログファイルに親切な見解が書かれていたので
参考にしながら
pg_hba.confを少しづつ修正して得られた正解は・・・
host all all ::1/128 trust
md5にするとダメなのが困りもの。※trust: パスワード無視
local all all peer
ハマった時のためにコレは残しておいた方が良さそう。
他はコメントアウト!!!
結論: やっぱりユーザはちゃんと作った方が良さそう。
virt-clone -o {公開用} -n {ブログ鯖} -f /var/lib/libvirt/images/{ブログ鯖}.qcow2 qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/{ブログ鯖}{,.compress}.qcow2 rm -f /var/lib/libvirt/images/{ブログ鯖}.qcow2 mv /var/lib/libvirt/images/{ブログ鯖}.compress.qcow2 /var/lib/libvirt/images/{ブログ鯖}.qcow2
ホスト名を変えたので調整。
ローカルキーファイルをリネーム。
mv /etc/tripwire/{古いホスト名}-local.key /etc/tripwire/{新しいホスト名}-local.key
新しい環境の環境変数を使って、設定ファイルを再生成
twadmin --print-cfgfile > /etc/tripwire/twcfg.txt twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt Please enter your site passphrase: Wrote configuration file: /etc/tripwire/tw.cfg
データベースを作り直す。
tripwire -m i -s -c /etc/tripwire/tw.cfg Please enter your local passphrase:
チェック。
tripwire --check ・・・ =============================================================================== Error Report: =============================================================================== No Errors ・・・
/etc/tripwireにあるテキストファイルを消す。
rm -rf /etc/tripwire/*.txt
<h3>Apatchインストール</h3> <pre>
yum -y install httpd php php-mbstring
設定(/etc/httpd/conf/httpd.conf)
色々(省略)
起動、自動実行
systemctl start httpd.service systemctl enable httpd.service
yum -y install postfix
設定(/etc/postfix/main.cf)
色々(省略)
ログインとメールで同じパスワードを使うので
yum -y install cyrus-sasl systemctl start saslauthd systemctl enable saslauthd
Maildir形式のメールボックスを作成
mkdir -p /etc/skel/Maildir/{new,cur,tmp} chmod -R 700 /etc/skel/Maildir/
起動、自動実行
systemctl restart postfix systemctl enable postfix
yum -y install dovecot
設定ファイル(/etc/dovecot/conf.d/10-mail.conf)を修正
・・・省略・・・
起動、自動実行
systemctl start dovecot systemctl enable dovecot
yum -y install mariadb-server
設定ファイル(/etc/my.cnf.d/server.cnf)に追記
[mysqld] character-set-server = utf8
起動、自動実行
systemctl enable mariadb.service systemctl start mariadb.service
yum -y install phpMyAdmin
設定ファイル(/etc/httpd/conf.d/)を修正
&lt;IfModule mod_authz_core.c&gt; # Apache 2.4 &lt;RequireAny&gt; Require ip 127.0.0.1 ←LANからも見える様にする Require ip ::1 &lt;/RequireAny&gt; &lt;/IfModule&gt;
設定ファイル(/etc/phpMyAdmin/config.inc.php)を修正
$cfg['blowfish_secret'] = '' ←空だったら mkpasswd -l 46 の結果を貼る
※mkpasswd が無かった yum -y install expect でインスト。
リポジトリィにあるwordpressは英語版なので日本語の最新版を使う
wget https://ja.wordpress.org/latest-ja.zip unzip -q latest-ja.zip mv wordpress /var/www/wordpress
wordpressのデータベース設定ファイル(/root/wordpress.sql)を作る
/* rootのパスワードを設定 */ set password for root@localhost=password('{パスワード}'); /* wordpressのデータベースのユーザを作成。*/ insert into user set user="{ユーザ名}", password=password("{パスワード}"), host="localhost"; /* wordpressのデータベースを作成 */ create database {データベース名}; /* wordpressのデータベースに ユーザに権限を与える */ grant all on {データベース名}.* to {ユーザ名}; /* 最新に更新 */ FLUSH PRIVILEGES;
設定
cd /root mysql -uroot -Dmysql -p{パスワード} &lt; wordpress.sql
設定ファイル(/var/www/wordpress/wp-config-sample.php)の作成
cd /var/www/wordpress cp wp-config-sample.php wp-config.php
設定ファイル(/var/www/wordpress/wp-config-sample.php)の編集
define('DB_NAME', '作成したデータベース名を設定'); define('DB_USER', '作成したユーザ名を設定'); define('DB_PASSWORD', '作成したパスワードを設定');
define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here');
は https://api.wordpress.org/secret-key/1.1/salt/ の結果を順に貼る
define('AUTH_KEY', '**************'); define('SECURE_AUTH_KEY', '**************'); define('LOGGED_IN_KEY', '**************'); define('NONCE_KEY', '**************'); define('AUTH_SALT', '**************'); define('SECURE_AUTH_SALT', '**************'); define('LOGGED_IN_SALT', '**************'); define('NONCE_SALT', '**************');
設定ファイルの再読み込み
systemctl reload httpd.service
to be continue・・・
virt-clone -o CentOS7_2 -n {公開用} -f /var/lib/libvirt/images/{公開用}.qcow2
割り当て中 ‘{公開用}.qcow2’ | 20 GB 00:05
‘{公開用}’のクローニングに成功しました。
※{公開用}は任意のゲスト名を指定する。
/etc/libvirt/qemu/{公開用}.xmlの内容を確認する。
<channel type=’unix’>
<source mode=’bind’ path=’/var/lib/libvirt/qemu/channel/target/domain-CentOS7_2/
<target type=’virtio’ name=’org.qemu.guest_agent.0’/>
<address type=’virtio-serial’ controller=’0′ bus=’0′ port=’1’/>
上の様にCentOS7_2と雛形の名前のままの場合には、virsh start {公開用}でエラーになるので、
※本当に20GBの仮想ディスクファイルが出来てしまっている場合は圧縮する。
qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/{公開用}{,.compress}.qcow2 rm -f /var/lib/libvirt/images/{公開用}.qcow2 mv /var/lib/libvirt/images/{公開用}.compress.qcow2 /var/lib/libvirt/images/{公開用}.qcow2
virt-edit -d {公開用} /etc/sysconfig/network-scripts/ifcfg-eth0
UUID=適当に修正
HWADDR=適当に修正
IPADDR=適当に修正
/etc/libvirt/qemu/{公開用}.xmlを見ながら適当に修正。
virt-edit -d {公開用} /etc/hostname
virt-edit -d {公開用} /etc/sysconfig/network
ホスト名があれば修正
※virt-editが無ければ、yum install libguestfs libguestfs-tools libguestfs-tools-c
※virt-editがviを開くまでは結構長いので気長に待つ。
virsh start {公開用}
yum -y groupinstall base "Development tools"
yum -y install epel-release
yum -y install tripwire
Tripwireの設定は http://yokensaka.com/centos/?p=318 を参照。
※とりあえず残っているものを消す
yum remove tripwire find /* | grep tripwire rm -rf 見つかったもの全て
インスト開始
yum install tripwire
初期設定
tripwire-setup-keyfiles ・・・ Enter the site keyfile passphrase: ← サイトパスフレーズを設定 Verify the site keyfile passphrase: ← サイトパスフレーズを再度入力 ・・・ Enter the local keyfile passphrase: ← ローカルパスフレーズを設定 Verify the local keyfile passphrase: ← ローカルパスフレーズを再度入力 ・・・ Enter the site keyfile passphrase: ← サイトパスフレーズを設定 ・・・ Enter the site keyfile passphrase: ← サイトパスフレーズを設定
設定ファイル(/etc/tripwire/twcfg.txt)の編集
LOOSEDIRECTORYCHECKING =false
を
LOOSEDIRECTORYCHECKING =true
REPORTLEVEL =3
を
REPORTLEVEL =4
設定ファイル(/etc/tripwire/twcfg.txt)を暗号化
twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt Please enter your site passphrase: ← サイトパスフレーズを設定 rm -f /etc/tripwire/twcfg.txt
復活の呪文
twadmin --print-cfgfile > /etc/tripwire/twcfg.txt
ポリシーファイルの最適化スクリプト(/etc/tripwire/twpolmake.pl)を作る
省略
ポリシーファイル(/etc/tripwire/twpolmake.pl)を最適化
perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new
ポリシーファイル(/etc/tripwire/twpolmake.pl)を暗号化
twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new Please enter your site passphrase: ← サイトパスフレーズを入力 rm -f /etc/tripwire/twpol.txt*
復活の呪文
twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt
データベース作成
tripwire -m i -s -c /etc/tripwire/tw.cfg Please enter your local passphrase: ← ローカルパスフレーズを入力
※うまくいかない場合は、ポリシーファイルを復活させ編集し暗号化してもう一度やってみる。
動作確認
tripwire -m c -s -c /etc/tripwire/tw.cfg
クローンで定時動作(/etc/cron.daily/tripwire-check)
#!/bin/sh # デフォルトの部分をコメントアウト #HOST_NAME=`uname -n` #if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then # echo "**** Error: Tripwire database for ${HOST_NAME} not found. ****" # echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****" #else # test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check #fi # パスフレーズ設定 LOCALPASS='****' ← ローカルパスフレーズを設定 SITEPASS='****' ← サイトパスフレーズを設定 cd /etc/tripwire # Tripwireチェック実行 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root # ポリシーファイル最新化 twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt perl twpolmake.pl twpol.txt > twpol.txt.new twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null rm -f twpol.txt* *.bak # データベース更新 rm -f /usr/local/tripwire/lib/tripwire/*.twd* tripwire -m i -s -c tw.cfg -P $LOCALPASS
実行属性を付加
chmod 700 /etc/cron.daily/tripwire-check
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz tar zxvf chkrootkit.tar.gz mkdir ~/bin mv chkrootkit-0.50/chkrootkit ~/bin rm -rf chkrootkit-0.50/ rm -f chkrootkit.tar.gz
※2016/10/30の更新で、chkrootkit.tar.gzやchkrootkit-051.tar.gzは使えない(テキストっぽい)ので、chkrootkit-050.tar.gzをDLかな?
内容を確認
chkrootkit | grep INFECTED
Searching for Suckit rootkit… Warning: /sbin/init INFECTED
原因を確認
rpm -V `rpm -qf /sbin/init`
差分が出なければ誤検知なので、
/root/chkrootのINFECTEDの部分から/sbin/initを除外する
echo "Warning: ${ROOTDIR}sbin/init INFECTED"
を
if ! rpm -V `rpm -qf /sbin/init` > /dev/null 2>&1 then echo "Warning: ${ROOTDIR}sbin/init INFECTED" fi
に変更
コマンドをバックアップ
mkdir chkrootkitcmd cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/ chkrootkit -p /root/chkrootkitcmd|grep INFECTED zip -r chkrootkitcmd.zip chkrootkitcmd/
http://impov.hatenablog.com/entry/2016/08/22/002350を参考にする様にする
yum -y install clamav clamav-scanner-systemd clamav-update
設定ファイル(/etc/clamd.d/scan.conf)を編集
# Comment or remove the line below. # Example ←コメントアウトする # 以下はお好みで、該当部分を探しコメントを外して有効化 LogFile /var/log/clamd.scan LogFileMaxSize 2M LogRotate yes # ローカルソケットの設定を探しコメントを外して有効化 LocalSocket /var/run/clamd.scan/clamd.sock # ユーザーをコメントアウトして root で動作させる #User clamscan # スキャンしないディレクトリを設定しておく(必要に応じて適宜ディレクトリ追加) # Don't scan files and directories matching regex # This directive can be used multiple times # Default: scan all ExcludePath ^/proc/ ExcludePath ^/sys/ ExcludePath ^/home/share/
ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
データベース更新用の設定ファイル(/etc/freshclam.conf)を編集
# Comment or remove the line below. # Example ←コメントアウト # 以下はお好みで、該当部分を探しコメントを外して有効化 UpdateLogFile /var/log/freshclam.log LogFileMaxSize 2M LogRotate yes
データベース更新用の設定ファイル(/etc/sysconfig/freshclam)を編集
# FRESHCLAM_DELAY=disabled-warn # REMOVE ME 最終行をコメントアウト
実行、自動実行
systemctl start clamd@scan systemctl enable clamd@scan
データベース更新
freshclam
インストしていない場合のみ
yum -y install chrony vi /etc/chronyd.conf #server 0.centos.pool.ntp.org iburst ←コメントアウト #server 1.centos.pool.ntp.org iburst ←コメントアウト #server 2.centos.pool.ntp.org iburst ←コメントアウト #server 3.centos.pool.ntp.org iburst ←コメントアウト server ntp1.jst.mfeed.ad.jp ←追加 server ntp2.jst.mfeed.ad.jp ←追加 server ntp3.jst.mfeed.ad.jp ←追加 systemctl restart chronyd systemctl enable chronyd
ps.2016.10.31 Syntax Highlighter と エディタが相性が悪く、ソース部分の文字化けが酷いので手修正。一部間違っているかもしれない。
※7.1ではキックスタートファイルを使わないとうまくいかない。
今のゲスト・イメージで作ったブログ・サーバーが不調気味。
https://www.centos.org/download/ からミラーのファイル名を見ると、
日付は10(or 14)-Dec-2015 去年の12月。
ファイル名は CentOS-7-x86_64-******-1511.iso と 7.2になっていたので、またKVMゲストを作ろうかな。
※すぐに7.3が出そうな悪寒がするけどキニシナイ。
ISOイメージをダウンロードしようとしたら2~5時間ぐらいかかるみたいなので、ISOファイルを使わずにALLネットインスト。
でもミラーサーバーの旧バージョンにはREADMEしか見当たらなかったので一応ISOイメージをDLしておいた方がよさそう。
1./rootにキックスタートファイル(centos7_2.ks.cfg)を作る。
※中身は7.1の時に使ったファイルを修正(/7/⇒/7.2.1511/)。
※–hostnameのドメイン付のホスト名は何かに変えておくこと。後でも変えれるけどね。
※管理者のユーザIDは何かに変えておくこと。後で変えられない。
#参考 url #http://ngyuki.hatenablog.com/entry/2013/10/16/233656 #http://qiita.com/ngyuki/items/fd469fec1cea873de0bf #version=RHEL7 install text cmdline skipx #とりあえず画面もキーボードも日本語で設定。 lang ja_JP.UTF-8 keyboard jp106 timezone Asia/Tokyo --isUtc --nontp #--noipv6は好み次第、Win10では青い画面の原因。 network --hostname=ドメイン付のホスト名 --onboot yes --device eth0 --bootproto dhcp --noipv6 zerombr bootloader --location=mbr #ラフなパーテーション設定なので要確認 clearpart --all --initlabel --drives=vda part /boot --fstype=xfs --size=500 --asprimary part swap --size=1024 part / --fstype=xfs --size=1 --grow --asprimary #仮のパスワードはpassword。 rootpw password user --name=管理者のユーザID --password=password auth --enableshadow --passalgo=sha512 #邪魔なものは全て外しておきますので、適宜調整してください。 selinux --disabled firewall --disabled firstboot --disabled reboot # repo --name="CentOS" --baseurl=http://ftp.riken.jp/Linux/centos/7.2.1511/os/x86_64/ #以下は最小限程度です。必要なパッケージは適宜追加してください %packages @base @core %end
2./rootにKVMクライアントのインストールファイル(create_kvm_centos7_2_guest.sh)を作る。
※中身は7.1の時に使ったファイルを修正(/7/7⇒/7.2.1511/、CentOS7_1⇒CentOS7_2、centos7.ks.cfg ⇒centos7_2.ks.cfg )。
※KVMホスト側でネットワークブリッジを設定していない場合は–network network=default にする。でも後で変えるのはとても大変。
#ネットワークインストールするリポジトリURL指定 REPOS=http://ftp.riken.jp/Linux/centos/7.2.1511/os/x86_64/ #KVM上での名前(CentOS7_2)を指定 IMAGE_NAME=CentOS7_2 IMG_PATH=/var/lib/libvirt/images #virt-installでインストールする ※ディスクサイズは20GBになっています。 virt-install \ --name ${IMAGE_NAME} \ --ram 1024 \ --disk path=${IMG_PATH}/${IMAGE_NAME}.qcow2,size=20,format=qcow2 \ --vcpus=1 \ --hvm \ --os-type linux \ --os-variant=rhel7 \ --nographics \ --location="${REPOS}" \ --cpu host-passthrough,+lahf_lm \ --network bridge=br0 \ --initrd-inject=/root/centos7_2.ks.cfg \ --extra-args='inst.ks=file:/centos7_2.ks.cfg console=ttyS0'
3.sh ./create_kvm_centos7_2_guest.sh でインスト開始。
4.暫く待つ。(数十分)
※OSImeage作成後のリブート時にdracut-initqueue・・・が時々でてきて延々と待たされることがある。(今までの最大待ち時間39分
原因:DHCPサーバーがなかなかIPアドレスを割り振ってくれない。
5.(・_・)フツウにrootでログイン。パスワードはキックスタートファイルに書いてある様にあくまでも仮。
6.ip a でIPアドレスを調べる。
7.一旦poweroffし、KVMホストから virsh start CentOS7_2で再起動。
8.試しにTeraTermで先のIPアドレスに接続してみる。失敗した場合は、KVMホストから virsh console CentOS7_2で接続。
※初回の接続までかなり時間がかかるらしい。
9.とりあえずパッケージを更新
yum -y update
10.自動更新設定
yum -y install yum-cron vi /etc/yum/yum-cron.conf apply_updates = yes systemctl start yum-cron systemctl enable yum-cron
11.ホスト停止時にゲストを停止できる
yum -y install acpid systemctl start acpid systemctl enable acpid
10.他の設定の確認
getenforce
Disabled
12.KVMゲストを終了
poweroff
ls -h /var/lib/libvirt/images/CentOS7_2.qcow2 でみると20GBもある・・・
中身は圧縮形式だけどね。
13.qcow2形式ファイルを圧縮
qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/CentOS7_2{,.compress}.qcow2
※とても長い
rm -f /var/lib/libvirt/images/CentOS7_2.qcow2 mv /var/lib/libvirt/images/CentOS7_2.compress.qcow2 /var/lib/libvirt/images/CentOS7_2.qcow2