2014年7月19日土曜日

SoftLayer で学ぶ Oracle RAC 入門、ワン・コインの自己投資(その3)

前回は、最後のところで、プロビジョニングスクリプトを紹介しました。

https://raw.githubusercontent.com/pcserver-jp/SoftLayer/master/iscsi01.hkg02.sh

こちらは、一般公開される GitHub 上に置いているので、書いてもよい内容が限定されていました。
「oracle」というパスワードが使われていることは、読めばすぐにわかります。
ただし、ssh 接続は公開鍵認証でしか入れないようにしており、プロビジョニング完了直後にパスワード変更するという前提で、良しとしています。
サーバ証明書も秘密鍵が入っていますが、https 通信をするためだけに内部でのみ使うものとして、良しとしています。プロビジョニング後に置き換えるのもよい考えです。

自動プロビジョニングによる利便性とセキュリティはなかなか両立しません。pxe ブートであれば、dhcp サーバと tftp サーバを利用することになりますが、認証機構を持っていません。また、暗号化もされていません。
SoftLayer のプロビジョニングスクリプトは、https による通信であり、暗号化されています。また、弱いとは言われていますが、ベーシック認証くらいであれば簡単に仕込むことができます。プロビジョニングスクリプトとは別の機構で ssh 公開鍵を登録してくれる仕組みも持っているので、少しはセキュアになっています。
プロビジョニング用のhttpsサーバを通常時には停止させておき、プロビジョニング時のみ起動させる、といった運用も可能です。セキュリティ要件を満たすかどうか、慎重に判断してください。

今回は、httpd がセキュアになるような設定は基本的に施していません。ベーシック認証の設定方法と SoftLayer で利用できることを確認する目的で、/prov/ についてのみベーシック認証を設定してみます。

2014/07/20追記
SoftLayerの管理ポータルでは、[Devices]-[Manage]-[Provisioning Scripts] メニューをクリックし、[Add Provisioning Script] ボタンをクリックして、プロビジョニングスクリプトを登録できるのですが、新規登録では認証情報を入れた URL ははじかれてしまいます。
認証情報抜きで登録し、下のリストで URL を「https://<ユーザ名>:<パスワード>@10.64.102.2/prov/db01.hkg02.sh」 のように編集します。
残念ながら、OS Reload 時にも、管理ポータルでは不正な URL としてはじかれてしまいます。
CLI から OS Reload すればうまくいくことは確認済みです。

[1:14 $0.136] iscsi01 サーバの apache にベーシック認証の設定を追加します。
GitHub のものはパスワード登録を除き、既に追加済みです。


sudo htpasswd -c /etc/httpd/.htpasswd softlayer
New password: oracle
Re-type new password: oracle
Adding password for user softlayer
sudo chmod 400 /etc/httpd/.htpasswd
sudo chown apache /etc/httpd/.htpasswd
sudo mkdir /var/www/html/prov/
sudo chmod 750 /var/www/html/prov/
sudo chown root:apache /var/www/html/prov/
cat << 'EOF' | sudo tee /etc/httpd/conf.d/prov.conf
<Directory "/var/www/html/prov">
    AuthType Basic
    AuthName "Secret Zone"
    AuthUserFile /etc/httpd/.htpasswd
    Require user softlayer
</Directory>
EOF
sudo chmod 400 /etc/httpd/conf.d/prov.conf
sudo /etc/init.d/httpd restart



[1:15 $0.136] データベースサーバ用のプロビジョニングスクリプトを作成します。

基本的には、iscsi01 サーバのものを流用していきます。相違点がわかるように箇条書き的に指摘した後、プロビジョニングスクリプト全体を示すことにします。操作としては、その最後のもののみを iscsi01 サーバに配置し、プロビジョニング時に実行します。
この最後のものを除き、sudo を付けていないので softlayer アカウントでそのまま実行してもエラーとなります。

最初に変数定義をしておきます。本番環境以外に、ステージング環境、開発環境などを作成することもあると思うので、そのあたりのパラメータを先頭部分に抜き出しておきます。
「exec 2>&1」 の部分はプロビジョニングスクリプト実行時の標準エラー出力を /var/log/messages に記録するためのものです。SoftLayer は、なぜか標準出力しか記録してくれません。


#!/bin/bash

exec 2>&1

MY_DOMAIN=example.com
PRIVATE_BASE_123=10.64.102
PRIVATE_BASE_4=0

MY_REPO=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+2))
MY_DNS1="nameserver $MY_REPO"
MY_DNS2=""
MY_ISCSI01=$MY_REPO
MY_CUI_STEPs=$MY_REPO
MY_BROWSER_STEPs=$MY_REPO
MY_DBCLIENT=$MY_REPO/32

MY_PRIVATE_4=3
NIC0=bond0; ifconfig bond0 > /dev/null 2>&1 || NIC0=eth0
NIC1=bond1; ifconfig bond1 > /dev/null 2>&1 || NIC1=eth1


db01 サーバと db02 サーバのプロビジョニングスクリプトの違いは「MY_PRIVATE_4」の値が「3」であるか「4」であるかだけとなるように作っていきます。db01 用が完成したところで、db01 用をコピーし、この部分を書き換えます。


sshd デーモンの設定は同じです。


ホストの名前解決の部分は以下の通りです。iscsi01 サーバは DNS キャッシュサーバを兼ねていましたが、ここでは iscsi01 サーバを参照する設定を行っています。ローカル側に「rac-scan」を登録してはいけません。


cat << EOF | tee /etc/resolv.conf
$MY_DNS1
$MY_DNS2
options single-request
search $MY_DOMAIN
EOF
sed -i -e 's/^hosts:.*$/hosts:      files dns/' /etc/nsswitch.conf
cat << EOF | tee /etc/hosts
127.0.0.1       localhost.localdomain   localhost
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+1))     gateway01.$MY_DOMAIN   gateway01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+2))     iscsi01.$MY_DOMAIN     iscsi01  dns01.$MY_DOMAIN dns01 repo01.$MY_DOMAIN repo01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3))     db01.$MY_DOMAIN        db01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4))     db02.$MY_DOMAIN        db02
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+5))     nfs01.$MY_DOMAIN       nfs01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+6))     nfs02.$MY_DOMAIN       nfs02
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+57))    nfs.$MY_DOMAIN         nfs
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58))    db01-vip.$MY_DOMAIN    db01-vip
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59))    db02-vip.$MY_DOMAIN    db02-vip
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60))    rac-scan.$MY_DOMAIN    rac-scan
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61))    rac-scan.$MY_DOMAIN    rac-scan
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62))    rac-scan.$MY_DOMAIN    rac-scan
192.168.0.1     db01-prv.$MY_DOMAIN    db01-prv
192.168.0.2     db02-prv.$MY_DOMAIN    db02-prv
192.168.0.3     nfs01-prv.$MY_DOMAIN   nfs01-prv
192.168.0.4     nfs02-prv.$MY_DOMAIN   nfs02-prv
EOF



ファイアウォールの設定は以下の通りです。


cat << EOF | tee /etc/sysconfig/iptables
*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
########## Public VLAN (& Private VLAN) ##########
-A INPUT -s 169.254.0.0/16,224.0.0.0/4 -j ACCEPT
-A INPUT -s 192.168.0.1,192.168.0.2,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62)) -j ACCEPT
#-A INPUT -i eth1  -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
#-A INPUT -i eth3  -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
#-A INPUT -i bond1 -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
-A INPUT -i eth1  -j DROP
-A INPUT -i eth3  -j DROP
-A INPUT -i bond1 -j DROP
########## Private VLAN ##########
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -s $MY_CUI_STEPs -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5500 -s $MY_BROWSER_STEPs -j ACCEPT
-A INPUT -s $MY_DBCLIENT -p tcp  -m state --state NEW -m tcp --dport 1521 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -p icmp -j ACCEPT
#-A INPUT -j LOG --log-prefix "IPTABLES_REJECT_PRIVATE : " --log-level=info
-A INPUT -j REJECT --reject-with icmp-host-prohibited
##########  ##########
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
EOF
if ! ifconfig bond0 > /dev/null 2>&1; then
  sed -i -e '/bond0/d' /etc/sysconfig/iptables
  sed -i -e '/bond1/d' /etc/sysconfig/iptables
  sed -i -e '/eth2/d' /etc/sysconfig/iptables
  sed -i -e '/eth3/d' /etc/sysconfig/iptables
fi
chmod 600 /etc/sysconfig/iptables
/etc/init.d/sshd restart



パスワードのハッシュ化方式変更は同じです。


一般ユーザ softlayer アカウント追加は同じです。


yum キャッシュは保存しません。簡易リポジトリを構築する必要がないので、関連するものは実行不要です。


sed -i -e 's/^keepcache=.*$/keepcache=0/' /etc/yum.conf



仮想サーバに入っているパッケージと物理サーバに入っているパッケージをそろえる部分は同じです。


IPv6 を無効化するのは同じです。


NetworkManager から制御されないように変更するのは同じです。


不要な cron 設定を無効化するのは同じです。


タイムゾーン設定は同じです。


キーボード設定は同じです。


SoftLayer の CLI インストールは同じです。設定はダミーのままとしておきます。


CentOS を Oracle Linux に変換するのは同じです。スクリプトは削除しておきます。


Oracle RAC 用のユーザを追加するのは同じです。


IP アドレスを変更します。ここで既存の通信が途切れます。物理サーバについはジャンボフレームを有効化しています。


sed -i -e "s/^GATEWAY=.*\$/GATEWAY=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+1))/" /etc/sysconfig/network
rm -f /etc/sysconfig/network-scripts/route-$NIC0
sed -i -e "s/^IPADDR=.*\$/IPADDR=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+MY_PRIVATE_4))/" /etc/sysconfig/network-scripts/ifcfg-$NIC0
sed -i -e "s/^IPADDR=.*\$/IPADDR=192.168.0.$((MY_PRIVATE_4-2))/" /etc/sysconfig/network-scripts/ifcfg-$NIC1
sed -i -e '/^MTU=/d' /etc/sysconfig/network-scripts/ifcfg-$NIC0
sed -i -e '/^MTU=/d' /etc/sysconfig/network-scripts/ifcfg-$NIC1
[ -e /proc/xen ] || echo MTU=9000 | tee -a /etc/sysconfig/network-scripts/ifcfg-$NIC0
[ -e /proc/xen ] || echo MTU=9000 | tee -a /etc/sysconfig/network-scripts/ifcfg-$NIC1
/etc/init.d/network restart



追加パッケージのインストールは、iscsi01 サーバの簡易リポジトリから取得して実行します。


yum -y remove ntpdate centos-indexhtml
curl -o /etc/yum.repos.d/public-yum-ol6.repo http://repo01.example.com/public-yum-ol6.repo
yum -y install \*


簡易リポジトリの中身を全部インストールしています。全部のサーバは同じパッケージの組み合わせ(同じバージョン)でインストールされている、という設計思想に基づいています。簡易リポジトリをメンテナンスし、他のサーバはこの簡易リポジトリしか参照しないようにすることで、セキュリティパッチ適用を制御したい、という考え方です。開発環境やステージング環境でテストしたパッケージのみを簡易リポジトリに投入するようにすることで、パッチ適用をコントロールしたい場合に有用だと思われます。


自動起動するデーモンを設定します。


for i in $(chkconfig --list | grep ^[A-Za-z] | grep -v services: | awk '{print $1}')
do
  case $i in
    EventMonitorService   ) chkconfig $i on;;
    atd                   ) chkconfig $i on;;
    crond                 ) chkconfig $i on;;
    iptables              ) chkconfig $i on;;
    irqbalance            ) chkconfig $i on;;
    network               ) chkconfig $i on;;
    ntpd                  ) chkconfig $i on;;
    rsyslog               ) chkconfig $i on;;
    sshd                  ) chkconfig $i on;;
    udev-post             ) chkconfig $i on;;
    xe-linux-distribution ) chkconfig $i on;;
    * ) chkconfig --level 0123456 $i off;;
  esac
done
[ -e /proc/xen ] && chkconfig --level 0123456 ntpd off



ntpd 設定は同じです。


VNC 設定は同じです。


サーバ証明書は不要です。


DNS キャッシュサーバ設定は不要です。


追加ディスクの設定は不要です。


iSCSI Target 設定は不要です。


iSCSI Initiator 設定を追加します。

通常ですと、/etc/iscsi/iscsid.conf ファイルに設定を入れ、iscsi デーモンを起動すればよいのですが、SoftLayer iSCSI Storage にて複数の LUN を利用する際には CHAP 認証の関係でうまく動作しません。/etc/iscsi/iscsid.conf ファイルには、CHAP 認証関連以外の設定を入れます。
CHAP 認証がうまくいくようにログインスクリプトを作成し、それに対応するログアウトスクリプトも作成します。ログインスクリプトが OS 起動直後に動くように設定を追加します。
また、iSCSI Initiator 名を固定したいので、設定しておきます。


cat << EOF | tee /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-07.com.example:$(uname -n | awk -F. '{print $1}')
EOF

cat << 'EOF' | tee /etc/iscsi/iscsid.conf
iscsid.startup = /etc/rc.d/init.d/iscsid force-start
node.startup = manual
node.leading_login = No
node.session.timeo.replacement_timeout = 120
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 10
node.conn[0].timeo.noop_out_timeout = 15
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 30
node.session.err_timeo.tgt_reset_timeout = 30
node.session.initial_login_retry_max = 8
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.xmit_thread_priority = -20
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.conn[0].iscsi.HeaderDigest = None
node.session.nr_sessions = 1
node.session.iscsi.FastAbort = Yes
EOF

touch /etc/iscsi/loginall.sh
chmod 700 /etc/iscsi/loginall.sh
cat << 'EOF' | tee /etc/iscsi/loginall.sh
#!/bin/bash

/etc/init.d/iscsid start
init_iscsi_target()
{
  PCS_TARGET_PORTAL=$1
  iscsiadm -m discovery -t st -p $1
}
login_iscsi()
{
  iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -o update -n discovery.sendtargets.auth.username -v $1
  iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -o update -n discovery.sendtargets.auth.password -v $2
  TGT=$(iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -D | awk '{print $2}' | sed 's/^iscsid: //' | grep -i $1\$)
  iscsiadm -m node -T $TGT -o update -n node.session.auth.authmethod -v CHAP
  iscsiadm -m node -T $TGT -o update -n node.session.auth.username -v $1
  iscsiadm -m node -T $TGT -o update -n node.session.auth.password -v $2
  iscsiadm -m node -T $TGT -l
}

init_iscsi_target iscsi01.example.com
login_iscsi SLI999999-1 oracleoracle
login_iscsi SLI999999-2 oracleoracle
login_iscsi SLI999999-3 oracleoracle
login_iscsi SLI999999-4 oracleoracle
login_iscsi SLI999999-5 oracleoracle
login_iscsi SLI999999-6 oracleoracle
login_iscsi SLI999999-7 oracleoracle
login_iscsi SLI999999-8 oracleoracle
login_iscsi SLI999999-9 oracleoracle

#init_iscsi_target iscsi02.example.com
#login_iscsi SLI999999-10 oracleoracle
#login_iscsi SLI999999-11 oracleoracle
#login_iscsi SLI999999-12 oracleoracle
EOF

cat << 'EOF' | tee /etc/iscsi/logoutall.sh
iscsiadm -m node -U all
iscsiadm -m node -o delete
rm -rf /var/lib/iscsi/send_targets/* /var/lib/iscsi/nodes/*
/etc/init.d/iscsid stop
EOF
chmod 755 /etc/iscsi/logoutall.sh

sed -i -e '/\/etc\/iscsi\/loginall.sh/d' /etc/rc.d/rc.local
echo '/etc/iscsi/loginall.sh' | tee -a /etc/rc.d/rc.local



バックアップスクリプト等でsshを利用することも多いと思います。
クラスタの場合、1号機と2号機でホスト鍵を揃えておきたい、ということも多いと思います。
作り直した際に、ホスト鍵が変わると困る、というケースも想定されます。
プロビジョニング段階で固定したいと思います。
SoftLayer の標準的なプロビジョニングだと、コピー元のイメージから ssh ホスト鍵を削除しています。sshd の起動スクリプトでは、ホスト鍵が存在しない場合、新規に作成します。つまり、プロビジョニングの度に鍵が変わってしまうことになります。
ちなみに、SoftLayer の標準的なプロビジョニングでは、IP アドレス、ネットマスクの変更、MAC アドレスの変更、ゲートウェイの変更を施してくれています。その他は ssh ホスト鍵の削除だけのようです。指定すれば、root アカウントに ssh 公開鍵を登録してくれます。

話を元に戻します。
ホスト鍵の固定の仕方ですが、自動で作成させずに作ってしまえばよい、ということにつきます。
今回は、手を抜き、iscsi01 サーバのものを利用します。ホスト鍵を盗まれると成りすましの恐れが出てきますので、慎重に管理してください。
iscsi01 サーバにて青字部分を実行し、実行結果の赤字部分をプロビジョニングスクリプトに追加します。


echo "base64 -di << 'EOF' | tee /etc/ssh/ssh_host_key > /dev/null"; \
sudo base64 /etc/ssh/ssh_host_key; \
echo EOF; \
echo 'chmod 600 /etc/ssh/ssh_host_key'; \
echo ; \
echo "cat << EOF | tee /etc/ssh/ssh_host_key.pub"; \
sudo cat /etc/ssh/ssh_host_key.pub; \
echo EOF; \
echo 'chmod 644 /etc/ssh/ssh_host_key.pub'; \
echo ; \
echo "cat << 'EOF' | tee /etc/ssh/ssh_host_dsa_key"; \
sudo cat /etc/ssh/ssh_host_dsa_key; \
echo EOF; \
echo 'chmod 600 /etc/ssh/ssh_host_dsa_key'; \
echo ; \
echo "cat << EOF | tee /etc/ssh/ssh_host_dsa_key.pub"; \
sudo cat /etc/ssh/ssh_host_dsa_key.pub; \
echo EOF; \
echo 'chmod 644 /etc/ssh/ssh_host_dsa_key.pub'; \
echo ; \
echo "cat << 'EOF' | tee /etc/ssh/ssh_host_rsa_key"; \
sudo cat /etc/ssh/ssh_host_rsa_key; \
echo EOF; \
echo 'chmod 600 /etc/ssh/ssh_host_rsa_key'; \
echo ; \
echo "cat << EOF | tee /etc/ssh/ssh_host_rsa_key.pub"; \
sudo cat /etc/ssh/ssh_host_rsa_key.pub; \
echo EOF; \
echo 'chmod 644 /etc/ssh/ssh_host_rsa_key.pub'
base64 -di << 'EOF' | tee /etc/ssh/ssh_host_key > /dev/null
U1NIIFBSSVZBVEUgS0VZIEZJTEUgRk9STUFUIDEuMQoAAAAAAAAAAAgACAC4cGxBwazJhhqylSlg
R9z8nzwI5bKC8jy5wu036HTeErvsB36qkvp7M72SWlxpftWiJCDU7FTR+VjMWdaiKZJjqmq4XyV8
m58rBsqRy4ZVk3CO4Yr9OlyU7YLH7V9lLNBpz8d4wMyjG5X9Y/iV3Wh4G0ytVOYOnX8laTeYujft
yWqwqBN2RiSabiwJYudwsS7jnVljQS97lDAaapbHDABoBRTeT9R1J/u5TZPB4FBGiqX/OJdnBvXf
m7BmItx89Q8Yh3yKsxWx/sHe0YSj71nAVN6mQLlD6Zg9irAD+Vq8rQmO8kFpCUbUes8+v2gC+tZq
6MrE6xmdnp2b7YIM72WpAAYjAAAAAPzp/OkIAIkDDpc/amnRVak7mxRSpClgWHujUWiWsMSCLI/u
grOY417g/wJeji+ix1bGyE5eOEyP3eAABH65OqZun3EmMjtopwyec55k+eVywl2tIfZthtCKSf3w
1w+L3X6TE6o+jDFYhYzm/mqJhV0lsVlipWCJTucpH+2ZkabDMJ1XIjubrNLiFRwXM02Q9KxPapQB
Lxuhm8g68KLkZxM2aOH9E0i77gc+Hk4LW5b7ZsVP/BbPuYRnZj9EqOBxJuyQvyUWi9gw45z4gZBX
rELx462/vqnvFXQPR2/dmjUxa4wuKMvH4+K5AOXqI4soQbOXUAZPZ15vmhHHA7+bpFZGZSnX7mMD
/jP3iTobSg5A/yQIxuD9cif1Y8Dmfwg5lRbtfASHMUf42YSelgvNYBG9/exNO0HOnaYPY2J1dwgX
1Fovq7V2MYT64FkxwVeVmZH7cy+8sKfGaMxZkUBnpC1KBHThF/ueOXBOTl/kZJzSFzGOBvqGcN/H
KtvQldGwYGyKdAd72OObBADNartsrMLsNkrWtwQdGHM+erpeRrQy++iKbm9tRSsZBAU9vQZuWcmU
/ICVKmIRoSLRtXVTpZHsC9zWXwvDADK4oGbHJljBhZB9eN408kYpNX0pTSSxWXFBUouRa0Ewl7nN
6fhrW5gji+ujItj63II/Yc4lxfv7wS0jaWRlG/PvbwQA5dtGJ+ifEN4u+EMHk31QCZxOWqKzzEHu
Vf5s/sfRJgvvKmZOZLJPHKyh9D8ca0ue+BeG16ddiPRhm8ijBHwQS3Kj0cJG4NZuZlqZ/6o6w5Jk
olCRTyKmpN53q1wD34jInJFPj+uiQjSd51tfqM81Fbs1pF0oIqlHWA0qWa7O8GcAAAAA
EOF
chmod 600 /etc/ssh/ssh_host_key

cat << EOF | tee /etc/ssh/ssh_host_key.pub
2048 35 23283285901271310749198427482821735998837543012226873242544247205605481167588720492697090380552023824930386808530176694152975342193294753418290074393249535365523437288017550857835881628982569752276319581441819166993835097651964714628431041436794775185152283008850512305634926599601357235343812503737202223843969474584927831002079874714461343196821895985389222343112733374448933863245040800612059011292404256951648723967037049394197045483684468771550570145869048089553699970351494448824502310042846775874057368880746979479461870374820638637167751075727735024527662957786046960386619316879349713174217962729651416556969
EOF
chmod 644 /etc/ssh/ssh_host_key.pub

cat << 'EOF' | tee /etc/ssh/ssh_host_dsa_key
-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQD13MtxRAIYV7N10FhCUxpSa4/n1OQM5/i5YZFxZtbtMlPrZAzr
cZuij0rG9XDc3w6ItRVcP2b3ZAsMv6K0JFLKoFOIu5nryLTfz2ylAIJeVpggeHbi
633QAwhed1urVMRS0XZMkavwr3Wvzfyg0HSLTuFHuLD/XArWeLHdFrPhsQIVALye
BLdYpM7qevbz65g8jlz3YUT9AoGAFcJi6YSqBCrT2aELOrBBUIwhOkUpi+pSb5ny
g9TBEhQaNEMVIOYrsGhb1M37zKCBACLruNVSIJbVP4zcF2ZCxc07/BwY8YsyijJd
28brGGkavPK487xmyfao/+rOs3m0R/Klq8fAEUnAWhhl6NIaBA3gYOfHjRWXxqET
SF/BjhQCgYAnbapx+mM4N3WasfJn+XrIM6IWywzqmLIYmSkyCHlXaMfP+iGds5Tm
uAWifTsMTX0ojiOBvDSKccA1DKpoK94br6ptc1VMY3mBQliqCukMSJ8tqDu+3r0R
aJ6VlLJ5kqCyxs0ZjvWyv+z4sLyBHqSk8bHx1KP1NzngZfNGw23z3AIUFh4cjSCW
wNrqzUy31WsyIiPfBBY=
-----END DSA PRIVATE KEY-----
EOF
chmod 600 /etc/ssh/ssh_host_dsa_key

cat << EOF | tee /etc/ssh/ssh_host_dsa_key.pub
ssh-dss AAAAB3NzaC1kc3MAAACBAPXcy3FEAhhXs3XQWEJTGlJrj+fU5Azn+LlhkXFm1u0yU+tkDOtxm6KPSsb1cNzfDoi1FVw/ZvdkCwy/orQkUsqgU4i7mevItN/PbKUAgl5WmCB4duLrfdADCF53W6tUxFLRdkyRq/Cvda/N/KDQdItO4Ue4sP9cCtZ4sd0Ws+GxAAAAFQC8ngS3WKTO6nr28+uYPI5c92FE/QAAAIAVwmLphKoEKtPZoQs6sEFQjCE6RSmL6lJvmfKD1MESFBo0QxUg5iuwaFvUzfvMoIEAIuu41VIgltU/jNwXZkLFzTv8HBjxizKKMl3bxusYaRq88rjzvGbJ9qj/6s6zebRH8qWrx8ARScBaGGXo0hoEDeBg58eNFZfGoRNIX8GOFAAAAIAnbapx+mM4N3WasfJn+XrIM6IWywzqmLIYmSkyCHlXaMfP+iGds5TmuAWifTsMTX0ojiOBvDSKccA1DKpoK94br6ptc1VMY3mBQliqCukMSJ8tqDu+3r0RaJ6VlLJ5kqCyxs0ZjvWyv+z4sLyBHqSk8bHx1KP1NzngZfNGw23z3A==
EOF
chmod 644 /etc/ssh/ssh_host_dsa_key.pub

cat << 'EOF' | tee /etc/ssh/ssh_host_rsa_key
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAoCqS+/vyrw91GVOxkRgeUIG4wiyWgcHtkL0fGxfa3wYyOuF2
LY+xerO+WP2qjbyVv5qKJSM0YOk8P3082ouWHbcO9UKUuyE2lmbg4fP8ozw2Lg3x
LQAnbbm7AKvoyJoCVEVy1QjKEZ7LEEev/YrPOb5cFYz23chqwF33Q1ZZzy4xtiFP
NEGu7gKfpHVLE6l9x67hAZgUS71BD2OPQ7xnaJEEYb8wSooffJNw6X5ZMzQHVwmh
6o37tMN4BW7AujFF8ABjnu0BNuvteuWyLb3fDOZ6eoIP6LtunOP0F7jTxN6yjD1G
PMdL7NIlYn/JhKudCldrVW2DKy/HyDM89xxCwwIBIwKCAQB2+w4aRiH+Y0ELgAA/
5gfkCJfgs2h9pgDvLWeQeB7u0WckbPi0IZnI3UuSkI1TWORFMPjoY0t7MOrtVbgt
Ub/40SEN9vIknFRvuiNmBbRcANfKcMHJqFfN2m2oujflebiWX3ngFShk3FxVPJFd
QotPd3ea+wCHfvA3ITtWl+rxrByPIUA4KqBPD8pc15Yxq9mSiOJZB0CZ4V+Z1b5n
y2PK9FF51Q+S86O9fpODj3NbFaEmDnwCvzrPO5vvSQEIq4LqO2DrN39TZ4uaTfKF
31Fs3KHu3m+0otqjOTDGksV0RYIuqGbyXEqmPmYA9poPYrNGfu3fEpSFiqQV3SIE
ODNrAoGBAM+0DpnOtwT1VjHX9g8IIZ6hNzpI2W5wRQVPophcP3kLJ9oAWkUMfKff
2P6VWuzlpyHExIxGdI+8T5LAju4fWGaxBOwdAb2avKDU7OFego+t2hXJUORd7ESB
sU2wLxT+/oUpbwdpC0rWDuR8BOxSzDDUOUj4PWXNxeRvgbk9v07LAoGBAMVoyGjL
KeXdA3rtDkChR+t+v2JUl1i9jcTm0naW13Hf5TLa7X2pdri7LZgPWHhmoQLLWPiM
tYkcj/XRh2TnyptScHUKND+YN5qRVM9CZ04RbTvvo0Zmahd6jQwhJqFG5RHVOlHI
jojoNC29zHBEi8ml/R06vnzRB98T4HN4myTpAoGATSWfBe2xsWJweOnQa/u0t0Mx
xTEATZdqF+pg9sMthLsALGaH7cLPNwoAJAuWzQTXrXT4i9+noxoO7V126rsvdpmF
fEVJyhTm+eivwWw/H2x1kxBCnfb//DAr6afW+SuDG4RrEWGH2fe8Y36FfFlEhypB
KbtKAT3NKPY3f1Fy8WECgYEAuiD3eL+N51tbDYBshhRoYbIE567X11Oi7Nmh3Ybo
ZA2dllljk70JiZqKEwcnh3a1EUNig/JiBO8LZB1TxYoWzPX1AKM4k7tnoF0kE9+F
+SZfrYosOxAa4u/kEsArvKHt7D4Sal4Cu5kbQRIJ5jIAJIaPkJZ5FpkzTqxXSE0k
kIMCgYApJO4YOdHvxGdZtUgIvjIIw7e7A/Qclu70FfvhF8l7ykk3OWcVjhexx3G/
pdYsMQf0qHJeJnsahOsnzz6eTv+iQpuZDyqFCcZK2UhMyAbDbygKg/fQ6loTzOQe
EKp/l0tjL8nbdda9F09VcV9gefYjAqNN27Ec0QyiZFWlmrjAeg==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /etc/ssh/ssh_host_rsa_key

cat << EOF | tee /etc/ssh/ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoCqS+/vyrw91GVOxkRgeUIG4wiyWgcHtkL0fGxfa3wYyOuF2LY+xerO+WP2qjbyVv5qKJSM0YOk8P3082ouWHbcO9UKUuyE2lmbg4fP8ozw2Lg3xLQAnbbm7AKvoyJoCVEVy1QjKEZ7LEEev/YrPOb5cFYz23chqwF33Q1ZZzy4xtiFPNEGu7gKfpHVLE6l9x67hAZgUS71BD2OPQ7xnaJEEYb8wSooffJNw6X5ZMzQHVwmh6o37tMN4BW7AujFF8ABjnu0BNuvteuWyLb3fDOZ6eoIP6LtunOP0F7jTxN6yjD1GPMdL7NIlYn/JhKudCldrVW2DKy/HyDM89xxCww==
EOF
chmod 644 /etc/ssh/ssh_host_rsa_key.pub



ホスト鍵を固定すると、known_hosts を事前に作成することが可能となります。


echo "localhost,db01.$MY_DOMAIN,db01,db02.$MY_DOMAIN,db02,db01-vip.$MY_DOMAIN,db01-vip,db02-vip.$MY_DOMAIN,db02-vip,db01-prv.$MY_DOMAIN,db01-prv,db02-prv.$MY_DOMAIN,db02-prv,rac-scan.$MY_DOMAIN,rac-scan,127.0.0.1,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59)),192.168.0.1,192.168.0.2,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62)) $(cat /etc/ssh/ssh_host_rsa_key.pub)" | tee /root/.ssh/known_hosts
mkdir /home/grid/.ssh /home/oracle/.ssh
chmod 700 /home/grid/.ssh /home/oracle/.ssh
cp -a /root/.ssh/known_hosts /home/softlayer/.ssh/known_hosts
cp -a /root/.ssh/known_hosts /home/grid/.ssh/known_hosts
cp -a /root/.ssh/known_hosts /home/oracle/.ssh/known_hosts
chown -R softlayer:softlayer /home/softlayer/.ssh
chown -R grid:oinstall /home/grid/.ssh
chown -R oracle:oinstall /home/oracle/.ssh



ここからは、主に Oracle インストール要件を満たすための設定変更となります。

Oracle RAC インストール時に、必要時にパスワード入力することなく相手のサーバに ssh 接続できる環境が必要です。Oracle のインストーラーは、パスワード認証のためにパスワードを事前登録するオプションも持っていますが、今回は sshd のパスワード認証を無効化しているので、パスフレーズなしで公開鍵認証できる設定を入れることにします。本来であれば、データベース1号機で鍵ペアーを作成し、2号機に公開鍵を登録するところですが、iscsi01 サーバ上で作成し、プロビジョニングスクリプトに入れることにします。インストール完了直後に公開鍵、秘密鍵の登録を削除することにします。
iscsi01 サーバにて青字部分を実行し、実行結果の赤字部分をプロビジョニングスクリプトに追加します。


ssh-keygen -N "" -C softlayer@oracle -f /home/softlayer/.ssh/id_rsa > /dev/null 2>&1; \
PUB=$(cat /home/softlayer/.ssh/id_rsa.pub); \
PRIV=$(cat /home/softlayer/.ssh/id_rsa); \
rm -f /home/softlayer/.ssh/id_rsa{,.pub}; \
echo "echo '$PUB' | tee -a /home/grid/.ssh/authorized_keys"; \
echo "echo '$PUB' | tee -a /home/oracle/.ssh/authorized_keys"; \
echo "cat << 'EOF' | tee /home/grid/.ssh/id_rsa"; \
echo "$PRIV"; \
echo "EOF"; \
echo "chmod 600 /home/grid/.ssh/id_rsa"; \
echo "cat << 'EOF' | tee /home/oracle/.ssh/id_rsa"; \
echo "$PRIV"; \
echo "EOF"; \
echo "chmod 600 /home/oracle/.ssh/id_rsa"; \
echo "chown -R grid:oinstall /home/grid/.ssh"; \
echo "chown -R oracle:oinstall /home/oracle/.ssh"
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wRVKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu89TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQ== softlayer@oracle' | tee -a /home/grid/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wRVKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu89TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQ== softlayer@oracle' | tee -a /home/oracle/.ssh/authorized_keys
cat << 'EOF' | tee /home/grid/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29
vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0
X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr
69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wR
VKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu8
9TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQIBIwKCAQB5UWsJpm5Gld9ALMRi
Px/xypyl40cy8HETZKzPHICgbnvC8hpUwnH+jFac5E4PIBsqe++ZekI2p1mGQVCL
tvLZVhEeKhQS5924w5U2A/puFQJ7Wy9hnLpSCclUSIVzTENvmLlKAsUFUftLywdE
LyBYqmBliYO4ANYneiZiTbU02+/mVpVEfaJLMvgjQ/WpwSMjdRoikgk7j/xkYh47
MWs9XYTcUmouykt23UMGNzbb0zgYleFAGH7BvaXlJYIdljJOMQu7/vOLkWDmYAuE
gqv3haj5jSzOT9y5LWD0np/IwFOVqHMkisaJKnaZ8YqN2YQItrkmNySNLo67xX3v
lnYrAoGBAP/0lH/g5+ct1gbt5+q7BMpAjtNLGheLXNMMw+nsARCsFl0up3i6kmTm
RfhqEEeP2dFiQHGZn7gEIvI1Atfy7lXX6h/nCckn7yjGPeHt0mcJj8ZeCHXAvlfJ
2+flmelt8bLTr5HNZINV4tlwcvS/gA/Y0ON46F1xClluHpxrUxalAoGBAPnQ4yIj
i66AXtxS8m8D94QpZb8vUX7W7Njn//fFDtX+8VKBs1ALBN5b98SDC/vufV1Ew0hz
TVdiMD0TPR5yf8folo/T4OMQ98jBhwnB1JNG9ZI6aXK4lrofohQJacPXUbGXK7aR
R0n8sp8pc+qKrS3Wb8/Ldiu54U7OQQQ5Tmm5AoGADqBC//45IycwzTIqgnEWN3Fn
P0Yev4ROcnXCDV3xbqq/cwn68PS36IIv4k80IVitXGwDrrhSRQeM9+XFpfCf56Xw
HxSEN2FeH5ZMrdMTVlhRW8rb6Xi6a2qe2g0evOG2Cjf7Z2rSiyl6rVbh/1tmZ043
0nvwBVbqpgZK5F3nfaMCgYBAPQc0qg35q/sitj5XD6YMCqUiiIKrllopJbbZT+3f
QY6C7ibLcIw5LZd7rKtPaTYt7RxF1IGaIJAPtH1uOrMkxsehU718N5AsTwV3iZ0P
7azcdWuShzyzhHoiaNINyadK7FuymmLJ4eTJ13WUFQf12A4ffXYogEFAJmh9bdJV
swKBgQDq6/vhpKBLj0j0l1o4yc0Anzlthl0iw5jQF2CQdQIDYPtPkOwK4eiES6TG
dlKfCerNxmTb2+MGpq774zuA6p6QZtHQF1ebBgJJoaVhIscMSFHgEkOFuwV2Ye1g
aI9Cde4zMjlE116XHork34gEwFqrOZZXQ20YHMFhrX2I3m7YlA==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /home/grid/.ssh/id_rsa
cat << 'EOF' | tee /home/oracle/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29
vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0
X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr
69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wR
VKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu8
9TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQIBIwKCAQB5UWsJpm5Gld9ALMRi
Px/xypyl40cy8HETZKzPHICgbnvC8hpUwnH+jFac5E4PIBsqe++ZekI2p1mGQVCL
tvLZVhEeKhQS5924w5U2A/puFQJ7Wy9hnLpSCclUSIVzTENvmLlKAsUFUftLywdE
LyBYqmBliYO4ANYneiZiTbU02+/mVpVEfaJLMvgjQ/WpwSMjdRoikgk7j/xkYh47
MWs9XYTcUmouykt23UMGNzbb0zgYleFAGH7BvaXlJYIdljJOMQu7/vOLkWDmYAuE
gqv3haj5jSzOT9y5LWD0np/IwFOVqHMkisaJKnaZ8YqN2YQItrkmNySNLo67xX3v
lnYrAoGBAP/0lH/g5+ct1gbt5+q7BMpAjtNLGheLXNMMw+nsARCsFl0up3i6kmTm
RfhqEEeP2dFiQHGZn7gEIvI1Atfy7lXX6h/nCckn7yjGPeHt0mcJj8ZeCHXAvlfJ
2+flmelt8bLTr5HNZINV4tlwcvS/gA/Y0ON46F1xClluHpxrUxalAoGBAPnQ4yIj
i66AXtxS8m8D94QpZb8vUX7W7Njn//fFDtX+8VKBs1ALBN5b98SDC/vufV1Ew0hz
TVdiMD0TPR5yf8folo/T4OMQ98jBhwnB1JNG9ZI6aXK4lrofohQJacPXUbGXK7aR
R0n8sp8pc+qKrS3Wb8/Ldiu54U7OQQQ5Tmm5AoGADqBC//45IycwzTIqgnEWN3Fn
P0Yev4ROcnXCDV3xbqq/cwn68PS36IIv4k80IVitXGwDrrhSRQeM9+XFpfCf56Xw
HxSEN2FeH5ZMrdMTVlhRW8rb6Xi6a2qe2g0evOG2Cjf7Z2rSiyl6rVbh/1tmZ043
0nvwBVbqpgZK5F3nfaMCgYBAPQc0qg35q/sitj5XD6YMCqUiiIKrllopJbbZT+3f
QY6C7ibLcIw5LZd7rKtPaTYt7RxF1IGaIJAPtH1uOrMkxsehU718N5AsTwV3iZ0P
7azcdWuShzyzhHoiaNINyadK7FuymmLJ4eTJ13WUFQf12A4ffXYogEFAJmh9bdJV
swKBgQDq6/vhpKBLj0j0l1o4yc0Anzlthl0iw5jQF2CQdQIDYPtPkOwK4eiES6TG
dlKfCerNxmTb2+MGpq774zuA6p6QZtHQF1ebBgJJoaVhIscMSFHgEkOFuwV2Ye1g
aI9Cde4zMjlE116XHork34gEwFqrOZZXQ20YHMFhrX2I3m7YlA==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /home/oracle/.ssh/id_rsa
chown -R grid:oinstall /home/grid/.ssh
chown -R oracle:oinstall /home/oracle/.ssh



grid アカウントのリソース制限を設定します。oracle-rdbms-server-12cR1-preinstall パッケージが oracle アカウント用に設定したものを流用します。


grep ^oracle /etc/security/limits.d/oracle-rdbms-server-12cR1-preinstall.conf | sed s/^oracle/grid/ | tee /etc/security/limits.d/grid.conf



Oracle インストール先ディレクトリを作成します。


mkdir -p /u01/app/grid /u01/app/12.1.0/grid /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01



Oracle Database のインストール要件に合致するように swap を追加します。


MEM=$(($(grep MemTotal /proc/meminfo | awk '{print $2}')/1024))
[ $MEM -gt 16384 ] && MEM=16384
SWAP2=$((MEM-$(grep SwapTotal /proc/meminfo | awk '{print $2}')/1024+4))
if [ $SWAP2 -gt 0 ]; then
  dd if=/dev/zero of=/.swap bs=1M count=$SWAP2
  mkswap -f /.swap
  sed -i -e 's/pri=0,defaults/pri=9,defaults/' /etc/fstab
  sed -i -e '/^LABEL=SWAP-/ s/ defaults/ pri=9,defaults/' /etc/fstab
  echo '/.swap                  swap                    swap    sw,pri=2        0 0' | tee -a /etc/fstab
  swapon -a
fi



自動メモリ管理 (MEMORY_TARGET 初期化パラメータ、あるいは MEMORY_MAX_TARGET 初期化パラメータ) を使用できるように、tmpfs の予約サイズを設定しておきます。とりあえず、全メモリの80%としておきます。


MEM=$(($(grep MemTotal /proc/meminfo | awk '{print $2}')*8/10/1024))
sed -i -e "/^tmpfs/ s/ defaults/ size=${MEM}m/" /etc/fstab



最後に再起動するのは同じです。


ここまでの設定を iscsi01 サーバに保存します。赤字の部分は必ず適切に変更してください。


sudo touch /var/www/html/prov/db01.hkg02.sh
sudo chmod 640 /var/www/html/prov/db01.hkg02.sh
sudo chown root:apache /var/www/html/prov/db01.hkg02.sh
cat << 'EOF_DB01' | sudo tee /var/www/html/prov/db01.hkg02.sh
#!/bin/bash

exec 2>&1

MY_DOMAIN=example.com
PRIVATE_BASE_123=10.64.102
PRIVATE_BASE_4=0

MY_REPO=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+2))
MY_DNS1="nameserver $MY_REPO"
MY_DNS2=""
MY_ISCSI01=$MY_REPO
MY_CUI_STEPs=$MY_REPO
MY_BROWSER_STEPs=$MY_REPO
MY_DBCLIENT=$MY_REPO/32

MY_PRIVATE_4=3
NIC0=bond0; ifconfig bond0 > /dev/null 2>&1 || NIC0=eth0
NIC1=bond1; ifconfig bond1 > /dev/null 2>&1 || NIC1=eth1

cat << 'EOF' | tee /etc/ssh/sshd_config
AddressFamily inet
Protocol 2
SyslogFacility AUTHPRIV
#PermitRootLogin without-password
#PermitRootLogin forced-commands-only
PermitRootLogin no
PubkeyAuthentication yes
RSAAuthentication no
RhostsRSAAuthentication no
HostbasedAuthentication no
PasswordAuthentication no
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts no
X11Forwarding no
PermitTunnel no
Subsystem       sftp    /usr/libexec/openssh/sftp-server
UseDNS no
EOF
/etc/init.d/sshd restart

cat << EOF | tee /etc/resolv.conf
$MY_DNS1
$MY_DNS2
options single-request
search $MY_DOMAIN
EOF
sed -i -e 's/^hosts:.*$/hosts:      files dns/' /etc/nsswitch.conf
cat << EOF | tee /etc/hosts
127.0.0.1       localhost.localdomain   localhost
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+1))     gateway01.$MY_DOMAIN   gateway01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+2))     iscsi01.$MY_DOMAIN     iscsi01  dns01.$MY_DOMAIN dns01 repo01.$MY_DOMAIN repo01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3))     db01.$MY_DOMAIN        db01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4))     db02.$MY_DOMAIN        db02
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+5))     nfs01.$MY_DOMAIN       nfs01
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+6))     nfs02.$MY_DOMAIN       nfs02
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+57))    nfs.$MY_DOMAIN         nfs
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58))    db01-vip.$MY_DOMAIN    db01-vip
$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59))    db02-vip.$MY_DOMAIN    db02-vip
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60))    rac-scan.$MY_DOMAIN    rac-scan
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61))    rac-scan.$MY_DOMAIN    rac-scan
#$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62))    rac-scan.$MY_DOMAIN    rac-scan
192.168.0.1     db01-prv.$MY_DOMAIN    db01-prv
192.168.0.2     db02-prv.$MY_DOMAIN    db02-prv
192.168.0.3     nfs01-prv.$MY_DOMAIN   nfs01-prv
192.168.0.4     nfs02-prv.$MY_DOMAIN   nfs02-prv
EOF

cat << EOF | tee /etc/sysconfig/iptables
*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
########## Public VLAN (& Private VLAN) ##########
-A INPUT -s 169.254.0.0/16,224.0.0.0/4 -j ACCEPT
-A INPUT -s 192.168.0.1,192.168.0.2,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62)) -j ACCEPT
#-A INPUT -i eth1  -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
#-A INPUT -i eth3  -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
#-A INPUT -i bond1 -j LOG --log-prefix "IPTABLES_DROP_GLOBAL : " --log-level=info
-A INPUT -i eth1  -j DROP
-A INPUT -i eth3  -j DROP
-A INPUT -i bond1 -j DROP
########## Private VLAN ##########
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -s $MY_CUI_STEPs -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5500 -s $MY_BROWSER_STEPs -j ACCEPT
-A INPUT -s $MY_DBCLIENT -p tcp  -m state --state NEW -m tcp --dport 1521 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -p icmp -j ACCEPT
#-A INPUT -j LOG --log-prefix "IPTABLES_REJECT_PRIVATE : " --log-level=info
-A INPUT -j REJECT --reject-with icmp-host-prohibited
##########  ##########
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
EOF
if ! ifconfig bond0 > /dev/null 2>&1; then
  sed -i -e '/bond0/d' /etc/sysconfig/iptables
  sed -i -e '/bond1/d' /etc/sysconfig/iptables
  sed -i -e '/eth2/d' /etc/sysconfig/iptables
  sed -i -e '/eth3/d' /etc/sysconfig/iptables
fi
chmod 600 /etc/sysconfig/iptables
/etc/init.d/iptables restart

sed -i -e 's/^ENCRYPT_METHOD .*$/ENCRYPT_METHOD SHA512/' /etc/login.defs
sed -i -e '/^MD5_CRYPT_ENAB/d' /etc/login.defs
sed -i -e 's/^PASSWDALGORITHM=.*$/PASSWDALGORITHM=sha512/' /etc/sysconfig/authconfig
sed -i -e 's/md5/sha512/' /etc/pam.d/password-auth
sed -i -e 's/md5/sha512/' /etc/pam.d/password-auth-ac
sed -i -e 's/md5/sha512/' /etc/pam.d/system-auth
sed -i -e 's/md5/sha512/' /etc/pam.d/system-auth-ac
dd if=/dev/urandom bs=1 count=50 2> /dev/null | base64 | passwd --stdin root
echo '%wheel ALL=(ALL) NOPASSWD: ALL' | tee /etc/sudoers.d/wheel
groupadd -g 500 softlayer
useradd -g softlayer -G wheel -u 500 softlayer
echo oracle | passwd --stdin softlayer
chage -d 0 softlayer
cp -a .ssh /home/softlayer/
chown -R softlayer:softlayer /home/softlayer/.ssh

sed -i -e 's/^keepcache=.*$/keepcache=0/' /etc/yum.conf
sed -i -e '/^assumeyes=.*$/d' /etc/yum.conf

yum -y update
yum -y install           \
 apr                     \
 apr-util                \
 apr-util-ldap           \
 crypto-utils            \
 db4-cxx                 \
 db4-devel               \
 elinks                  \
 gd                      \
 gdbm-devel              \
 glibc-devel             \
 glibc-headers           \
 httpd                   \
 httpd-manual            \
 httpd-tools             \
 ipmitool                \
 kernel-headers          \
 libXpm                  \
 lm_sensors-libs         \
 mailcap                 \
 mod_perl                \
 mod_ssl                 \
 mod_wsgi                \
 net-snmp-libs           \
 nss_compat_ossl         \
 OpenIPMI                \
 OpenIPMI-libs           \
 perl-BSD-Resource       \
 perl-devel              \
 perl-ExtUtils-MakeMaker \
 perl-ExtUtils-ParseXS   \
 perl-Newt               \
 perl-Test-Harness       \
 webalizer

sed -i -e '/^NOZEROCONF.*$/d'         /etc/sysconfig/network
sed -i -e '/^NETWORKING_IPV6.*$/d'    /etc/sysconfig/network
sed -i -e '/^IPV6INIT.*$/d'           /etc/sysconfig/network
sed -i -e '/^IPV6_AUTOCONF.*$/d'      /etc/sysconfig/network
sed -i -e '/^IPV4_FAILURE_FATAL.*$/d' /etc/sysconfig/network
cat << 'EOF' | tee -a /etc/sysconfig/network
NOZEROCONF=yes
NETWORKING_IPV6=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV4_FAILURE_FATAL=yes
EOF
sed -i -e '/^# Disable IPv6.*$/d'                     /etc/sysctl.conf
sed -i -e '/^net.ipv6.conf.all.disable_ipv6.*$/d'     /etc/sysctl.conf
sed -i -e '/^net.ipv6.conf.default.disable_ipv6.*$/d' /etc/sysctl.conf
cat << 'EOF' | tee -a /etc/sysctl.conf
# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
EOF

[ -e /etc/sysconfig/network-scripts/ifcfg-eth0  ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-eth0
[ -e /etc/sysconfig/network-scripts/ifcfg-eth1  ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-eth1
[ -e /etc/sysconfig/network-scripts/ifcfg-eth2  ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-eth2
[ -e /etc/sysconfig/network-scripts/ifcfg-eth3  ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-eth3
[ -e /etc/sysconfig/network-scripts/ifcfg-bond0 ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-bond0
[ -e /etc/sysconfig/network-scripts/ifcfg-bond1 ] && sed -i -e '/^NM_CONTROLLED.*$/d' /etc/sysconfig/network-scripts/ifcfg-bond1
[ -e /etc/sysconfig/network-scripts/ifcfg-eth0  ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-eth0
[ -e /etc/sysconfig/network-scripts/ifcfg-eth1  ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-eth1
[ -e /etc/sysconfig/network-scripts/ifcfg-eth2  ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-eth2
[ -e /etc/sysconfig/network-scripts/ifcfg-eth3  ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-eth3
[ -e /etc/sysconfig/network-scripts/ifcfg-bond0 ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-bond0
[ -e /etc/sysconfig/network-scripts/ifcfg-bond1 ] && echo 'NM_CONTROLLED=no' | tee -a /etc/sysconfig/network-scripts/ifcfg-bond1

grep -q -v ^# /etc/cron.d/raid-check && sed -i -e 's/^/#/' /etc/cron.d/raid-check

cat << 'EOF' | tee /etc/sysconfig/clock
ZONE="Asia/Tokyo"
EOF
cp -a /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

cat << 'EOF' | tee /etc/sysconfig/keyboard
KEYTABLE="jp106"
MODEL="jp106"
LAYOUT="jp"
KEYBOARDTYPE="pc"
EOF

yum -y install python-setuptools
easy_install softlayer

cat << 'EOF' | tee /home/softlayer/.softlayer
[softlayer]
username = SL999999
api_key = abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01
endpoint_url = https://api.service.softlayer.com/xmlrpc/v3.1
timeout = 10
EOF
chmod 600 /home/softlayer/.softlayer
echo 'user = SL999999:abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01' | tee /home/softlayer/.softlayer.user
chmod 600 /home/softlayer/.softlayer.user
chown softlayer:softlayer /home/softlayer/.softlayer*

yum clean all
#sed -i -e 's/^DEFAULTKERNEL=.*$/DEFAULTKERNEL=kernel-uek/' /etc/sysconfig/kernel
curl -O https://linux.oracle.com/switch/centos2ol.sh
yes | sh centos2ol.sh
rm -f centos2ol.sh

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmadmin
groupadd -g 54328 asmdba
groupadd -g 54329 asmoper
useradd -g oinstall -G dba,backupdba,dgdba,kmdba,asmdba -u 54321 oracle
echo oracle | passwd --stdin oracle
chage -d 0 oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper -u 54322 grid
echo oracle | passwd --stdin grid
chage -d 0 grid

sed -i -e "s/^GATEWAY=.*\$/GATEWAY=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+1))/" /etc/sysconfig/network
rm -f /etc/sysconfig/network-scripts/route-$NIC0
sed -i -e "s/^IPADDR=.*\$/IPADDR=$PRIVATE_BASE_123.$((PRIVATE_BASE_4+MY_PRIVATE_4))/" /etc/sysconfig/network-scripts/ifcfg-$NIC0
sed -i -e "s/^IPADDR=.*\$/IPADDR=192.168.0.$((MY_PRIVATE_4-2))/" /etc/sysconfig/network-scripts/ifcfg-$NIC1
/etc/init.d/network restart

#for i in $(rpm -qa | grep centos); do yum -y remove $i; done
yum -y remove ntpdate centos-indexhtml
curl -o /etc/yum.repos.d/public-yum-ol6.repo http://repo01.example.com/public-yum-ol6.repo
yum -y install \*

for i in $(chkconfig --list | grep ^[A-Za-z] | grep -v services: | awk '{print $1}')
do
  case $i in
    EventMonitorService   ) chkconfig $i on;;
    atd                   ) chkconfig $i on;;
    crond                 ) chkconfig $i on;;
    iptables              ) chkconfig $i on;;
    irqbalance            ) chkconfig $i on;;
    network               ) chkconfig $i on;;
    ntpd                  ) chkconfig $i on;;
    rsyslog               ) chkconfig $i on;;
    sshd                  ) chkconfig $i on;;
    udev-post             ) chkconfig $i on;;
    xe-linux-distribution ) chkconfig $i on;;
    * ) chkconfig --level 0123456 $i off;;
  esac
done
[ -e /proc/xen ] && chkconfig --level 0123456 ntpd off

cat << 'EOF' | tee /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-4 -x -u ntp:ntp -p /var/run/ntpd.pid -g"
EOF
cat << 'EOF' | tee /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
server -4 10.0.77.54 iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF

cat << 'EOF' | tee /etc/sysconfig/vncservers
VNCSERVERS="1:softlayer"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -localhost"
EOF
sudo sed -i -e '/^X-GNOME-Autostart-enabled/d' /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
echo 'X-GNOME-Autostart-enabled=false' | sudo tee -a /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop

##### [softlayer@iscsi01 ~]$ vncpasswd
mkdir /home/softlayer/.vnc
#echo czhlMTYhpiU= | base64 -di | tee /home/softlayer/.vnc/passwd
touch /home/softlayer/.vnc/passwd
chmod 600 /home/softlayer/.vnc/passwd
chown -R softlayer:softlayer /home/softlayer/.vnc

cat << EOF | tee /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-07.com.example:$(uname -n | awk -F. '{print $1}')
EOF

cat << 'EOF' | tee /etc/iscsi/iscsid.conf
iscsid.startup = /etc/rc.d/init.d/iscsid force-start
node.startup = manual
node.leading_login = No
node.session.timeo.replacement_timeout = 120
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 10
node.conn[0].timeo.noop_out_timeout = 15
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 30
node.session.err_timeo.tgt_reset_timeout = 30
node.session.initial_login_retry_max = 8
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.xmit_thread_priority = -20
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.conn[0].iscsi.HeaderDigest = None
node.session.nr_sessions = 1
node.session.iscsi.FastAbort = Yes
EOF

touch /etc/iscsi/loginall.sh
chmod 700 /etc/iscsi/loginall.sh
cat << 'EOF' | tee /etc/iscsi/loginall.sh
#!/bin/bash

/etc/init.d/iscsid start
init_iscsi_target()
{
  PCS_TARGET_PORTAL=$1
  iscsiadm -m discovery -t st -p $1
}
login_iscsi()
{
  iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -o update -n discovery.sendtargets.auth.username -v $1
  iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -o update -n discovery.sendtargets.auth.password -v $2
  TGT=$(iscsiadm -m discoverydb -t st -p $PCS_TARGET_PORTAL -D | awk '{print $2}' | sed 's/^iscsid: //' | grep -i $1\$)
  iscsiadm -m node -T $TGT -o update -n node.session.auth.authmethod -v CHAP
  iscsiadm -m node -T $TGT -o update -n node.session.auth.username -v $1
  iscsiadm -m node -T $TGT -o update -n node.session.auth.password -v $2
  iscsiadm -m node -T $TGT -l
}

init_iscsi_target iscsi01.example.com
login_iscsi SLI999999-1 oracleoracle
login_iscsi SLI999999-2 oracleoracle
login_iscsi SLI999999-3 oracleoracle
login_iscsi SLI999999-4 oracleoracle
login_iscsi SLI999999-5 oracleoracle
login_iscsi SLI999999-6 oracleoracle
login_iscsi SLI999999-7 oracleoracle
login_iscsi SLI999999-8 oracleoracle
login_iscsi SLI999999-9 oracleoracle

#init_iscsi_target iscsi02.example.com
#login_iscsi SLI999999-10 oracleoracle
#login_iscsi SLI999999-11 oracleoracle
#login_iscsi SLI999999-12 oracleoracle
EOF

cat << 'EOF' | tee /etc/iscsi/logoutall.sh
iscsiadm -m node -U all
iscsiadm -m node -o delete
rm -rf /var/lib/iscsi/send_targets/* /var/lib/iscsi/nodes/*
/etc/init.d/iscsid stop
EOF
chmod 755 /etc/iscsi/logoutall.sh

sed -i -e '/\/etc\/iscsi\/loginall.sh/d' /etc/rc.d/rc.local
echo '/etc/iscsi/loginall.sh' | tee -a /etc/rc.d/rc.local

base64 -di << 'EOF' | tee /etc/ssh/ssh_host_key > /dev/null
U1NIIFBSSVZBVEUgS0VZIEZJTEUgRk9STUFUIDEuMQoAAAAAAAAAAAgACAC4cGxBwazJhhqylSlg
R9z8nzwI5bKC8jy5wu036HTeErvsB36qkvp7M72SWlxpftWiJCDU7FTR+VjMWdaiKZJjqmq4XyV8
m58rBsqRy4ZVk3CO4Yr9OlyU7YLH7V9lLNBpz8d4wMyjG5X9Y/iV3Wh4G0ytVOYOnX8laTeYujft
yWqwqBN2RiSabiwJYudwsS7jnVljQS97lDAaapbHDABoBRTeT9R1J/u5TZPB4FBGiqX/OJdnBvXf
m7BmItx89Q8Yh3yKsxWx/sHe0YSj71nAVN6mQLlD6Zg9irAD+Vq8rQmO8kFpCUbUes8+v2gC+tZq
6MrE6xmdnp2b7YIM72WpAAYjAAAAAPzp/OkIAIkDDpc/amnRVak7mxRSpClgWHujUWiWsMSCLI/u
grOY417g/wJeji+ix1bGyE5eOEyP3eAABH65OqZun3EmMjtopwyec55k+eVywl2tIfZthtCKSf3w
1w+L3X6TE6o+jDFYhYzm/mqJhV0lsVlipWCJTucpH+2ZkabDMJ1XIjubrNLiFRwXM02Q9KxPapQB
Lxuhm8g68KLkZxM2aOH9E0i77gc+Hk4LW5b7ZsVP/BbPuYRnZj9EqOBxJuyQvyUWi9gw45z4gZBX
rELx462/vqnvFXQPR2/dmjUxa4wuKMvH4+K5AOXqI4soQbOXUAZPZ15vmhHHA7+bpFZGZSnX7mMD
/jP3iTobSg5A/yQIxuD9cif1Y8Dmfwg5lRbtfASHMUf42YSelgvNYBG9/exNO0HOnaYPY2J1dwgX
1Fovq7V2MYT64FkxwVeVmZH7cy+8sKfGaMxZkUBnpC1KBHThF/ueOXBOTl/kZJzSFzGOBvqGcN/H
KtvQldGwYGyKdAd72OObBADNartsrMLsNkrWtwQdGHM+erpeRrQy++iKbm9tRSsZBAU9vQZuWcmU
/ICVKmIRoSLRtXVTpZHsC9zWXwvDADK4oGbHJljBhZB9eN408kYpNX0pTSSxWXFBUouRa0Ewl7nN
6fhrW5gji+ujItj63II/Yc4lxfv7wS0jaWRlG/PvbwQA5dtGJ+ifEN4u+EMHk31QCZxOWqKzzEHu
Vf5s/sfRJgvvKmZOZLJPHKyh9D8ca0ue+BeG16ddiPRhm8ijBHwQS3Kj0cJG4NZuZlqZ/6o6w5Jk
olCRTyKmpN53q1wD34jInJFPj+uiQjSd51tfqM81Fbs1pF0oIqlHWA0qWa7O8GcAAAAA
EOF
chmod 600 /etc/ssh/ssh_host_key

cat << EOF | tee /etc/ssh/ssh_host_key.pub
2048 35 23283285901271310749198427482821735998837543012226873242544247205605481167588720492697090380552023824930386808530176694152975342193294753418290074393249535365523437288017550857835881628982569752276319581441819166993835097651964714628431041436794775185152283008850512305634926599601357235343812503737202223843969474584927831002079874714461343196821895985389222343112733374448933863245040800612059011292404256951648723967037049394197045483684468771550570145869048089553699970351494448824502310042846775874057368880746979479461870374820638637167751075727735024527662957786046960386619316879349713174217962729651416556969
EOF
chmod 644 /etc/ssh/ssh_host_key.pub

cat << 'EOF' | tee /etc/ssh/ssh_host_dsa_key
-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQD13MtxRAIYV7N10FhCUxpSa4/n1OQM5/i5YZFxZtbtMlPrZAzr
cZuij0rG9XDc3w6ItRVcP2b3ZAsMv6K0JFLKoFOIu5nryLTfz2ylAIJeVpggeHbi
633QAwhed1urVMRS0XZMkavwr3Wvzfyg0HSLTuFHuLD/XArWeLHdFrPhsQIVALye
BLdYpM7qevbz65g8jlz3YUT9AoGAFcJi6YSqBCrT2aELOrBBUIwhOkUpi+pSb5ny
g9TBEhQaNEMVIOYrsGhb1M37zKCBACLruNVSIJbVP4zcF2ZCxc07/BwY8YsyijJd
28brGGkavPK487xmyfao/+rOs3m0R/Klq8fAEUnAWhhl6NIaBA3gYOfHjRWXxqET
SF/BjhQCgYAnbapx+mM4N3WasfJn+XrIM6IWywzqmLIYmSkyCHlXaMfP+iGds5Tm
uAWifTsMTX0ojiOBvDSKccA1DKpoK94br6ptc1VMY3mBQliqCukMSJ8tqDu+3r0R
aJ6VlLJ5kqCyxs0ZjvWyv+z4sLyBHqSk8bHx1KP1NzngZfNGw23z3AIUFh4cjSCW
wNrqzUy31WsyIiPfBBY=
-----END DSA PRIVATE KEY-----
EOF
chmod 600 /etc/ssh/ssh_host_dsa_key

cat << EOF | tee /etc/ssh/ssh_host_dsa_key.pub
ssh-dss AAAAB3NzaC1kc3MAAACBAPXcy3FEAhhXs3XQWEJTGlJrj+fU5Azn+LlhkXFm1u0yU+tkDOtxm6KPSsb1cNzfDoi1FVw/ZvdkCwy/orQkUsqgU4i7mevItN/PbKUAgl5WmCB4duLrfdADCF53W6tUxFLRdkyRq/Cvda/N/KDQdItO4Ue4sP9cCtZ4sd0Ws+GxAAAAFQC8ngS3WKTO6nr28+uYPI5c92FE/QAAAIAVwmLphKoEKtPZoQs6sEFQjCE6RSmL6lJvmfKD1MESFBo0QxUg5iuwaFvUzfvMoIEAIuu41VIgltU/jNwXZkLFzTv8HBjxizKKMl3bxusYaRq88rjzvGbJ9qj/6s6zebRH8qWrx8ARScBaGGXo0hoEDeBg58eNFZfGoRNIX8GOFAAAAIAnbapx+mM4N3WasfJn+XrIM6IWywzqmLIYmSkyCHlXaMfP+iGds5TmuAWifTsMTX0ojiOBvDSKccA1DKpoK94br6ptc1VMY3mBQliqCukMSJ8tqDu+3r0RaJ6VlLJ5kqCyxs0ZjvWyv+z4sLyBHqSk8bHx1KP1NzngZfNGw23z3A==
EOF
chmod 644 /etc/ssh/ssh_host_dsa_key.pub

cat << 'EOF' | tee /etc/ssh/ssh_host_rsa_key
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAoCqS+/vyrw91GVOxkRgeUIG4wiyWgcHtkL0fGxfa3wYyOuF2
LY+xerO+WP2qjbyVv5qKJSM0YOk8P3082ouWHbcO9UKUuyE2lmbg4fP8ozw2Lg3x
LQAnbbm7AKvoyJoCVEVy1QjKEZ7LEEev/YrPOb5cFYz23chqwF33Q1ZZzy4xtiFP
NEGu7gKfpHVLE6l9x67hAZgUS71BD2OPQ7xnaJEEYb8wSooffJNw6X5ZMzQHVwmh
6o37tMN4BW7AujFF8ABjnu0BNuvteuWyLb3fDOZ6eoIP6LtunOP0F7jTxN6yjD1G
PMdL7NIlYn/JhKudCldrVW2DKy/HyDM89xxCwwIBIwKCAQB2+w4aRiH+Y0ELgAA/
5gfkCJfgs2h9pgDvLWeQeB7u0WckbPi0IZnI3UuSkI1TWORFMPjoY0t7MOrtVbgt
Ub/40SEN9vIknFRvuiNmBbRcANfKcMHJqFfN2m2oujflebiWX3ngFShk3FxVPJFd
QotPd3ea+wCHfvA3ITtWl+rxrByPIUA4KqBPD8pc15Yxq9mSiOJZB0CZ4V+Z1b5n
y2PK9FF51Q+S86O9fpODj3NbFaEmDnwCvzrPO5vvSQEIq4LqO2DrN39TZ4uaTfKF
31Fs3KHu3m+0otqjOTDGksV0RYIuqGbyXEqmPmYA9poPYrNGfu3fEpSFiqQV3SIE
ODNrAoGBAM+0DpnOtwT1VjHX9g8IIZ6hNzpI2W5wRQVPophcP3kLJ9oAWkUMfKff
2P6VWuzlpyHExIxGdI+8T5LAju4fWGaxBOwdAb2avKDU7OFego+t2hXJUORd7ESB
sU2wLxT+/oUpbwdpC0rWDuR8BOxSzDDUOUj4PWXNxeRvgbk9v07LAoGBAMVoyGjL
KeXdA3rtDkChR+t+v2JUl1i9jcTm0naW13Hf5TLa7X2pdri7LZgPWHhmoQLLWPiM
tYkcj/XRh2TnyptScHUKND+YN5qRVM9CZ04RbTvvo0Zmahd6jQwhJqFG5RHVOlHI
jojoNC29zHBEi8ml/R06vnzRB98T4HN4myTpAoGATSWfBe2xsWJweOnQa/u0t0Mx
xTEATZdqF+pg9sMthLsALGaH7cLPNwoAJAuWzQTXrXT4i9+noxoO7V126rsvdpmF
fEVJyhTm+eivwWw/H2x1kxBCnfb//DAr6afW+SuDG4RrEWGH2fe8Y36FfFlEhypB
KbtKAT3NKPY3f1Fy8WECgYEAuiD3eL+N51tbDYBshhRoYbIE567X11Oi7Nmh3Ybo
ZA2dllljk70JiZqKEwcnh3a1EUNig/JiBO8LZB1TxYoWzPX1AKM4k7tnoF0kE9+F
+SZfrYosOxAa4u/kEsArvKHt7D4Sal4Cu5kbQRIJ5jIAJIaPkJZ5FpkzTqxXSE0k
kIMCgYApJO4YOdHvxGdZtUgIvjIIw7e7A/Qclu70FfvhF8l7ykk3OWcVjhexx3G/
pdYsMQf0qHJeJnsahOsnzz6eTv+iQpuZDyqFCcZK2UhMyAbDbygKg/fQ6loTzOQe
EKp/l0tjL8nbdda9F09VcV9gefYjAqNN27Ec0QyiZFWlmrjAeg==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /etc/ssh/ssh_host_rsa_key

cat << EOF | tee /etc/ssh/ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoCqS+/vyrw91GVOxkRgeUIG4wiyWgcHtkL0fGxfa3wYyOuF2LY+xerO+WP2qjbyVv5qKJSM0YOk8P3082ouWHbcO9UKUuyE2lmbg4fP8ozw2Lg3xLQAnbbm7AKvoyJoCVEVy1QjKEZ7LEEev/YrPOb5cFYz23chqwF33Q1ZZzy4xtiFPNEGu7gKfpHVLE6l9x67hAZgUS71BD2OPQ7xnaJEEYb8wSooffJNw6X5ZMzQHVwmh6o37tMN4BW7AujFF8ABjnu0BNuvteuWyLb3fDOZ6eoIP6LtunOP0F7jTxN6yjD1GPMdL7NIlYn/JhKudCldrVW2DKy/HyDM89xxCww==
EOF
chmod 644 /etc/ssh/ssh_host_rsa_key.pub

echo "localhost,db01.$MY_DOMAIN,db01,db02.$MY_DOMAIN,db02,db01-vip.$MY_DOMAIN,db01-vip,db02-vip.$MY_DOMAIN,db02-vip,db01-prv.$MY_DOMAIN,db01-prv,db02-prv.$MY_DOMAIN,db02-prv,rac-scan.$MY_DOMAIN,rac-scan,127.0.0.1,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+3)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+4)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+58)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+59)),192.168.0.1,192.168.0.2,$PRIVATE_BASE_123.$((PRIVATE_BASE_4+60)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+61)),$PRIVATE_BASE_123.$((PRIVATE_BASE_4+62)) $(cat /etc/ssh/ssh_host_rsa_key.pub)" | tee /root/.ssh/known_hosts
mkdir /home/grid/.ssh /home/oracle/.ssh
chmod 700 /home/grid/.ssh /home/oracle/.ssh
cp -a /root/.ssh/known_hosts /home/softlayer/.ssh/known_hosts
cp -a /root/.ssh/known_hosts /home/grid/.ssh/known_hosts
cp -a /root/.ssh/known_hosts /home/oracle/.ssh/known_hosts
chown -R softlayer:softlayer /home/softlayer/.ssh
chown -R grid:oinstall /home/grid/.ssh
chown -R oracle:oinstall /home/oracle/.ssh

echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wRVKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu89TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQ== softlayer@oracle' | tee -a /home/grid/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wRVKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu89TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQ== softlayer@oracle' | tee -a /home/oracle/.ssh/authorized_keys
cat << 'EOF' | tee /home/grid/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29
vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0
X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr
69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wR
VKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu8
9TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQIBIwKCAQB5UWsJpm5Gld9ALMRi
Px/xypyl40cy8HETZKzPHICgbnvC8hpUwnH+jFac5E4PIBsqe++ZekI2p1mGQVCL
tvLZVhEeKhQS5924w5U2A/puFQJ7Wy9hnLpSCclUSIVzTENvmLlKAsUFUftLywdE
LyBYqmBliYO4ANYneiZiTbU02+/mVpVEfaJLMvgjQ/WpwSMjdRoikgk7j/xkYh47
MWs9XYTcUmouykt23UMGNzbb0zgYleFAGH7BvaXlJYIdljJOMQu7/vOLkWDmYAuE
gqv3haj5jSzOT9y5LWD0np/IwFOVqHMkisaJKnaZ8YqN2YQItrkmNySNLo67xX3v
lnYrAoGBAP/0lH/g5+ct1gbt5+q7BMpAjtNLGheLXNMMw+nsARCsFl0up3i6kmTm
RfhqEEeP2dFiQHGZn7gEIvI1Atfy7lXX6h/nCckn7yjGPeHt0mcJj8ZeCHXAvlfJ
2+flmelt8bLTr5HNZINV4tlwcvS/gA/Y0ON46F1xClluHpxrUxalAoGBAPnQ4yIj
i66AXtxS8m8D94QpZb8vUX7W7Njn//fFDtX+8VKBs1ALBN5b98SDC/vufV1Ew0hz
TVdiMD0TPR5yf8folo/T4OMQ98jBhwnB1JNG9ZI6aXK4lrofohQJacPXUbGXK7aR
R0n8sp8pc+qKrS3Wb8/Ldiu54U7OQQQ5Tmm5AoGADqBC//45IycwzTIqgnEWN3Fn
P0Yev4ROcnXCDV3xbqq/cwn68PS36IIv4k80IVitXGwDrrhSRQeM9+XFpfCf56Xw
HxSEN2FeH5ZMrdMTVlhRW8rb6Xi6a2qe2g0evOG2Cjf7Z2rSiyl6rVbh/1tmZ043
0nvwBVbqpgZK5F3nfaMCgYBAPQc0qg35q/sitj5XD6YMCqUiiIKrllopJbbZT+3f
QY6C7ibLcIw5LZd7rKtPaTYt7RxF1IGaIJAPtH1uOrMkxsehU718N5AsTwV3iZ0P
7azcdWuShzyzhHoiaNINyadK7FuymmLJ4eTJ13WUFQf12A4ffXYogEFAJmh9bdJV
swKBgQDq6/vhpKBLj0j0l1o4yc0Anzlthl0iw5jQF2CQdQIDYPtPkOwK4eiES6TG
dlKfCerNxmTb2+MGpq774zuA6p6QZtHQF1ebBgJJoaVhIscMSFHgEkOFuwV2Ye1g
aI9Cde4zMjlE116XHork34gEwFqrOZZXQ20YHMFhrX2I3m7YlA==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /home/grid/.ssh/id_rsa
cat << 'EOF' | tee /home/oracle/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEA+cW+QQtbgkOedRDfnRiND+xvr+L7/3aOczivE9FFDhCkcz29
vZBUGyDujk6Cl5x0Kkp00pJMFitd9ko8avEhKN5felahzJITx7DJyY+4TA0jOjQ0
X434ElBiRBzWg/ddqYW5tn4sOCFBnAtpUCTKH/VdDUhLa8V8q6Eh2XLPbNXYn7Fr
69CYhUN4tqKAsxF4o+WqKwGpZHIc/6wB0JPDdKoblBOFRAqTVRRV+ehLBq+xM/wR
VKcFT45Xp40vdSrfrMeLp2D7/eUTYhIwk0qYmWtaIcG9MSarKoEO15WM04QQgNu8
9TLtmikhfH3PXylNhPUhZd8ftwA3grn+RpsKPQIBIwKCAQB5UWsJpm5Gld9ALMRi
Px/xypyl40cy8HETZKzPHICgbnvC8hpUwnH+jFac5E4PIBsqe++ZekI2p1mGQVCL
tvLZVhEeKhQS5924w5U2A/puFQJ7Wy9hnLpSCclUSIVzTENvmLlKAsUFUftLywdE
LyBYqmBliYO4ANYneiZiTbU02+/mVpVEfaJLMvgjQ/WpwSMjdRoikgk7j/xkYh47
MWs9XYTcUmouykt23UMGNzbb0zgYleFAGH7BvaXlJYIdljJOMQu7/vOLkWDmYAuE
gqv3haj5jSzOT9y5LWD0np/IwFOVqHMkisaJKnaZ8YqN2YQItrkmNySNLo67xX3v
lnYrAoGBAP/0lH/g5+ct1gbt5+q7BMpAjtNLGheLXNMMw+nsARCsFl0up3i6kmTm
RfhqEEeP2dFiQHGZn7gEIvI1Atfy7lXX6h/nCckn7yjGPeHt0mcJj8ZeCHXAvlfJ
2+flmelt8bLTr5HNZINV4tlwcvS/gA/Y0ON46F1xClluHpxrUxalAoGBAPnQ4yIj
i66AXtxS8m8D94QpZb8vUX7W7Njn//fFDtX+8VKBs1ALBN5b98SDC/vufV1Ew0hz
TVdiMD0TPR5yf8folo/T4OMQ98jBhwnB1JNG9ZI6aXK4lrofohQJacPXUbGXK7aR
R0n8sp8pc+qKrS3Wb8/Ldiu54U7OQQQ5Tmm5AoGADqBC//45IycwzTIqgnEWN3Fn
P0Yev4ROcnXCDV3xbqq/cwn68PS36IIv4k80IVitXGwDrrhSRQeM9+XFpfCf56Xw
HxSEN2FeH5ZMrdMTVlhRW8rb6Xi6a2qe2g0evOG2Cjf7Z2rSiyl6rVbh/1tmZ043
0nvwBVbqpgZK5F3nfaMCgYBAPQc0qg35q/sitj5XD6YMCqUiiIKrllopJbbZT+3f
QY6C7ibLcIw5LZd7rKtPaTYt7RxF1IGaIJAPtH1uOrMkxsehU718N5AsTwV3iZ0P
7azcdWuShzyzhHoiaNINyadK7FuymmLJ4eTJ13WUFQf12A4ffXYogEFAJmh9bdJV
swKBgQDq6/vhpKBLj0j0l1o4yc0Anzlthl0iw5jQF2CQdQIDYPtPkOwK4eiES6TG
dlKfCerNxmTb2+MGpq774zuA6p6QZtHQF1ebBgJJoaVhIscMSFHgEkOFuwV2Ye1g
aI9Cde4zMjlE116XHork34gEwFqrOZZXQ20YHMFhrX2I3m7YlA==
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /home/oracle/.ssh/id_rsa
chown -R grid:oinstall /home/grid/.ssh
chown -R oracle:oinstall /home/oracle/.ssh

grep ^oracle /etc/security/limits.d/oracle-rdbms-server-12cR1-preinstall.conf | sed s/^oracle/grid/ | tee /etc/security/limits.d/grid.conf

mkdir -p /u01/app/grid /u01/app/12.1.0/grid /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

MEM=$(($(grep MemTotal /proc/meminfo | awk '{print $2}')/1024))
[ $MEM -gt 16384 ] && MEM=16384
SWAP2=$((MEM-$(grep SwapTotal /proc/meminfo | awk '{print $2}')/1024+4))
if [ $SWAP2 -gt 0 ]; then
  dd if=/dev/zero of=/.swap bs=1M count=$SWAP2
  mkswap -f /.swap
  sed -i -e 's/pri=0,defaults/pri=9,defaults/' /etc/fstab
  sed -i -e '/^LABEL=SWAP-/ s/ defaults/ pri=9,defaults/' /etc/fstab
  echo '/.swap                  swap                    swap    sw,pri=2        0 0' | tee -a /etc/fstab
  swapon -a
fi

MEM=$(($(grep MemTotal /proc/meminfo | awk '{print $2}')*8/10/1024))
sed -i -e "/^tmpfs/ s/ defaults/ size=${MEM}m/" /etc/fstab

reboot
EOF_DB01
sudo cp -a /var/www/html/prov/db01.hkg02.sh /var/www/html/prov/db02.hkg02.sh
sudo sed -i -e 's/^MY_PRIVATE_4=3$/MY_PRIVATE_4=4/' /var/www/html/prov/db02.hkg02.sh



[1:18 $0.696] 物理サーバがログインできる状態になりました。

物理サーバを発注するときにプロビジョニングスクリプトを指定していなかったので、先ほど保存したスクリプトをダウンロードして実行します。スクリプト内で IP アドレスを変更したりしているので、途中で接続が切れてしまいます。そのような場合、コンソールで操作するのがよいです。SoftLayer では、コンソール操作が可能です。
今回は、screen コマンドを利用します。接続が切れても端末がメモリ上に残り、最後まで実行され、再起動されます。
db01 サーバの Private IP アドレスを確認してください。「10.64.238.190」であったことにして話を進めます。
iscsi01 サーバからログインします。


[softlayer@iscsi01 ~]$ ssh root@10.64.238.190
The authenticity of host '10.64.238.190 (10.64.238.190)' can't be established.
RSA key fingerprint is 3d:7a:75:1c:ff:8b:d5:8c:26:16:10:19:15:96:6f:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.64.238.190' (RSA) to the list of known hosts.
Last login: Fri Jul 18 11:51:47 2014 from 10.2.225.249



screen パッケージをインストールします。


[root@db01 ~]# yum -y install screen


screen を実行します。


[root@db01 ~]# screen



プロビジョニングスクリプトをダウンロードして実行します。


[root@db01 ~]# curl -O -k https://softlayer:oracle@10.64.102.2/prov/db01.hkg02.sh
[root@db01 ~]# sh db01.hkg02.sh | tee post_install.log



db02 を対象に同様の操作を行います。
記述は省略します。


途中経過が気になると思います。IP アドレスを変更したところ(「Shutting down interface bond0:」 が表示された時点)で無反応になるので、別の端末を開き、iscsi01 サーバに接続し、そこから db01 サーバに接続します。接続先は、Portable Private IP Address です。


[softlayer@iscsi01 ~]$ ssh softlayer@10.64.102.3
The authenticity of host '10.64.102.3 (10.64.102.3)' can't be established.
RSA key fingerprint is 7e:c0:1e:12:05:f7:0d:3c:65:30:d6:4c:95:36:94:f1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.64.102.3' (RSA) to the list of known hosts.
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user softlayer.
Changing password for softlayer.
(current) UNIX password:oracle
New password:********
Retype new password:********
passwd: all authentication tokens updated successfully.
Connection to 10.64.102.3 closed.
[softlayer@iscsi01 ~]$ ssh softlayer@10.64.102.3
Last login: Sat Jul 19 10:35:21 2014 from 10.64.102.2
[softlayer@db01 ~]$ sudo tail -n 10000 -f /root/post_install.log


14分ほどで OS 再起動が始まり、2分ほどで再起動が完了しました。

iscsi01 サーバから再接続します。ホスト鍵が変更されているので接続できないはずです。
変更されたホスト鍵の情報を削除し、再接続します。以降は IP アドレスではなく、ホスト名で接続することにします。また、エージェント転送を有効化して(「-A」オプションつきで)接続することとします。


[softlayer@iscsi01 ~]$ ssh 10.64.102.3
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3c:5b:4a:5c:c4:b2:c6:39:bd:9a:a2:74:a0:01:95:b7.
Please contact your system administrator.
Add correct host key in /home/softlayer/.ssh/known_hosts to get rid of this message.
Offending key in /home/softlayer/.ssh/known_hosts:2
RSA host key for 10.64.102.3 has changed and you have requested strict checking.
Host key verification failed.
[softlayer@iscsi01 ~]$ ssh-keygen -R 10.64.102.3
/home/softlayer/.ssh/known_hosts updated.
Original contents retained as /home/softlayer/.ssh/known_hosts.old
[softlayer@iscsi01 ~]$ ssh -A db01
The authenticity of host 'db01 (10.64.102.3)' can't be established.
RSA key fingerprint is 3c:5b:4a:5c:c4:b2:c6:39:bd:9a:a2:74:a0:01:95:b7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'db01,10.64.102.3' (RSA) to the list of known hosts.
Last login: Sat Jul 19 10:35:39 2014 from 10.64.102.2
[softlayer@db01 ~]$



(その2)にて、多少の予算オーバは気にしないので同時並行作業は避けたい、ということで物理サーバの発注を保留していた場合は、以下のコマンドを iscsi01 サーバで実行します。


[softlayer@iscsi01 ~]$ sl server create --key=00000 --datacenter=HONGKONG02 --hostname=db01 --domain=example.com --cpu=4 --memory=4 --network=1000 --disk=500_SATA_II --billing=hourly --os=CENTOS_6._64_MINIMAL --chassis=50 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db01.hkg02.sh --test
:.......................................................:......:
:                                                  Item : cost :
:.......................................................:......:
:       4 x 2.0 GHz Core Bare Metal Instance - 4 GB Ram : 0.00 :
:                                         500GB SATA II : 0.00 :
:                 CentOS 6.x - Minimal Install (64 bit) : 0.00 :
:               1 Gbps Public & Private Network Uplinks : 0.00 :
:                                          1 IP Address : 0.00 :
:                                        0 GB Bandwidth : 0.00 :
:                                             Host Ping : 0.00 :
:           Nessus Vulnerability Assessment & Reporting : 0.00 :
:                                Automated Notification : 0.00 :
: Unlimited SSL VPN Users & 1 PPTP VPN User per account : 0.00 :
:                               Reboot / Remote Console : 0.00 :
:                                      Email and Ticket : 0.00 :
:                                International Services : 0.00 :
:                                    Total monthly cost : 0.00 :
:.......................................................:......:
 -- ! Prices reflected here are retail and do not take account level discounts and are not guaranteed.
[softlayer@iscsi01 ~]$ sl server create --key=00000 --datacenter=HONGKONG02 --hostname=db01 --domain=example.com --cpu=4 --memory=4 --network=1000 --disk=500_SATA_II --billing=hourly --os=CENTOS_6._64_MINIMAL --chassis=50 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db01.hkg02.sh -y
:.........:...........................:
:    name : value                     :
:.........:...........................:
:      id : 2535532                   :
: created : 2014-07-19T11:26:35+09:00 :
:.........:...........................:

[softlayer@iscsi01 ~]$ sl server create --key=00000 --datacenter=HONGKONG02 --hostname=db02 --domain=example.com --cpu=4 --memory=4 --network=1000 --disk=500_SATA_II --billing=hourly --os=CENTOS_6._64_MINIMAL --chassis=50 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db02.hkg02.sh --test

[softlayer@iscsi01 ~]$ sl server create --key=00000 --datacenter=HONGKONG02 --hostname=db02 --domain=example.com --cpu=4 --memory=4 --network=1000 --disk=500_SATA_II --billing=hourly --os=CENTOS_6._64_MINIMAL --chassis=50 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db02.hkg02.sh -y


2014/07/21追記
データベースサーバの1号機と2号機が同じ Public VLAN に接続されることを確認するために、--vlan_public=VLAN、--vlan_private=VLAN オプションも追加することをお勧めします。
VLAN には VLAN ID ではなく、SoftLayer が VLAN につけた ID を指定します。「sl vlan list」 を実行した際に一番左に表示される数値です。


データベースサーバも仮想マシンで構築したい、という場合は、以下のコマンドを iscsi01 サーバで実行します。


[softlayer@iscsi01 ~]$ sl vs create --key=00000 --datacenter=hkg02 --hostname=db01 --domain=example.com --cpu=1 --memory=4096 --network=1000 --disk=100 --hourly --os=CENTOS_6_64 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db01.hkg02.sh -y
:.........:......................................:
:    name : value                                :
:.........:......................................:
:      id : 5482934                              :
: created : 2014-07-19T11:34:00+09:00            :
:    guid : c5efa57f-b615-42ff-adc5-4b7687e83a67 :
:.........:......................................:

[softlayer@iscsi01 ~]$ sl vs create --key=00000 --datacenter=hkg02 --hostname=db02 --domain=example.com --cpu=1 --memory=4096 --network=1000 --disk=100 --hourly --os=CENTOS_6_64 --postinstall=https://softlayer:oracle@10.64.102.2/prov/db02.hkg02.sh -y



ここまでデータベースサーバの発注を保留していた方にとっては、非常に楽な手順です。


[1:38 $0.696] SoftLayer 標準の Ping が失敗している状態なので、監視設定を変更します。
管理ポータル https://control.softlayer.com にログイン後、[Devices]-[Device List] メニューをクリックし、「db01.example.com」の行の左端にある「▸ (右向き矢印)」をクリックし、[Monitoring] というリンクをクリックします。
[Manage Monitors] というリンクをクリックします。
右端にあるキャンセルアイコンをクリックし、削除してもよいかどうか聞かれるので [Yes] ボタンをクリックします。全部の行を削除します。
右上の [Add Monitor] ボタンをクリックします。
[IP Address] 欄にて 「10.64.102.3」 を選択し、[Monitor Type] 欄にて 「SERVICE PING」 を選択し、[Notify?] 欄にて 「Notify Users」 を選択し、[Add Monitor] ボタンをクリックします。

db02 を対象に同様の操作を行います。
記述は省略します。


[1:40 $0.696] 次回は、いよいよ Oracle RAC をインストールします。

0 件のコメント:

コメントを投稿