2015-07-28
OpenStack RDO Managerインストール (1)
OpenStack RedHat RDO Manager (TripleO) のインストール方法です。 基本的には、マニュアルの通りですが、いくつか落とし穴があります。 マニュアルが、理解している人向けに書かれているためと考えられます。
尚、この記事は、2015-07-20に記述しています。バグは日々改修されているようですので、下記内容と合わなくなっている可能性もあります。 宜しければ、コメントでお知らせください。
使用環境
今回使用する環境 | |
---|---|
インストール先 | Intel CPU, RAM 8GB, SSD 256GB |
その他環境 | |
---|---|
作業環境(ワークステーション) | Windows 8.1 |
端末環境 | MinGW+MSYS+ConEmu |
OSインストール用USBメモリ | USBメモリ16GB (8GBで十分です) |
CentOS 7.1のインストール
CentOS 7.1をインストールします。 下記は、USBからインストールする方法です。
USBへのisoファイルの書き込み
CentOS-7-x86_64-DVD-1503-01.iso をダウンロードします。
Win32 Disk Imager でFAT32フォーマットしたUSBメモリに書き込みます。 Rufus でも良いかも知れません。
CentOSインストール
USBから起動して、CentOS 7.1をインストールします。
- NETWORK & HOST NAMEで、Ethernet/Configure/GeneralのAutomatically connect to this network when availableのチェックをONにしておきます。
- DHCPでない場合は、IPV4 Settingを行ってください。
- パーティションは、xfsがデフォルトで基本ですが、今回はBtrfsを使用しました。
- インストール後は、sshで接続して作業します。
DHCPで得られるインストール後の、IPアドレスを確認してください。 以下、192.168.100.30をホストのIPアドレスとし、RDOマネージャホストと呼称します。
stackユーザーの作成
MSYSまたは、MSYS2 bashから、sshログインしてユーザーを作成します。 sudoでインストールは実行されます。 下記コマンドで、sudoersを設定します。 requirettyは、外しておきます。(ssh -tで代用できないか検討中です)
$ ssh root@192.168.100.30
[root@localhost ~]# useradd stack
[root@localhost ~]# passwd stack
[root@localhost ~]# echo "%stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/stack
[root@localhost ~]# sed -i "s/^\(.*requiretty\)$/#\1/" /etc/sudoers
[root@localhost ~]# echo 'Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY NO_PROXY"' >> /etc/sudoers
[root@localhost ~]# logout
ssh公開鍵の設定(Windows上のMSYS bash)
sshで公開鍵認証でログインするので、リモートホストに公開鍵を登録します。 公開鍵は、接続しようとするホスト(Windows8.1等)で、ssh-keygenを使用して作成してください。
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc...
ssh公開鍵の転送(Windows上のMSYS bash)
MSYSには、ssh-copy-idが無いので、下記のシェルスクリプトで転送します。 MSYS2には、ありますのでssh-copy-id.shではなく、ssh-copy-idと読み替えて実行してください。 http://gabrielsomoza.com/server-administration/ssh-copy-id-implementation-for-mingw-and-msys/
$ wget https://gist.github.com/gabrielsomoza/1825620/raw/f5a8febd458ba443e10bd7fe488603bc530f11ba/ssh-copy-id.sh --no-check-certificate
$ ssh-copy-id.sh -i ~/.ssh/id_rsa.pub stack@192.168.100.30
ssh公開鍵でログインします。
$ ssh -i ~/.ssh/id_rsa stack@192.168.100.30
sshdの設定
セキュリティ上、ルートでのリモートログインを拒否し、公開鍵認証のみにします。 ClientAliveIntervalを30にし、ssh接続が切れるのを防ぎます。
[stack@rdo ~]$ sudo sed -i.orig "s/#RSAAuthentication.*$/RSAAuthentication yes/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/#PubkeyAuthentication.*$/PubkeyAuthentication yes/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/#AuthorizedKeysFile\(.*\)$/AuthorizedKeysFile\1/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/#PermitRootLogin.*$/PermitRootLogin no/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/PasswordAuthentication.*$/PasswordAuthentication no/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/GSSAPIAuthentication.*$/GSSAPIAuthentication no/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/#UseDNS.*$/UseDNS no/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo sed -i "s/#ClientAliveInterval.*$/ClientAliveInterval 30/g" /etc/ssh/sshd_config
[stack@rdo ~]$ sudo systemctl restart sshd
[stack@rdo ~]$ logout
再度、ssh公開鍵でログインします。
$ ssh -i ~/.ssh/id_rsa stack@192.168.100.30
grubの修正
HDDの場合は、不要です。
SSD用に、カーネル起動パラメータを修正します。(elevator=noop)
デフォルトは、deadline I/Oスケジューラですが、SSDの場合は、時間のかかるIOを後回しにするdeadlineより、何もしないほうが効率が良いようです。 GUI表示は止めます。(rhgb quiet)
[stack@rdo ~]$ sudo sed -i.orig "s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"crashkernel=auto elevator=noop\"/g" /etc/default/ grub
grub2-mkconfigを忘れずに実行してください。
[stack@rdo ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
fstabの修正 (Btrfsの場合)
HDDの場合は、不要です。
SSD用に、fstabのパラメータを変更します。
[stack@rdo ~]$ sudo sed -i.orig "s/subvol=root/subvol=root,noatime,discard,ssd,compress=lzo,space_cache/g" /etc/fstab
[stack@rdo ~]$ sudo sed -i "s/subvol=home/subvol=home,noatime,discard,ssd,compress=lzo,space_cache/g" /etc/fstab
上記sedコマンドで、
- btrfs subvol=root を btrfs subvol=root,noatime,discard,ssd,compress=lzo,space_cache に置き換えます。
- btrfs subvol=home を btrfs subvol=home,noatime,discard,ssd,compress=lzo,space_cache に置き換えます。
ホスト名の変更
localhost.localdomainのままなので、hostnameを変更します。 rdo.localとします。
[stack@rdo ~]$ echo "rdo.local" | sudo tee /etc/hostname
上記sedコマンドで、
- localhost.localdomain を rdo.local に置き換えます。
モジュール・カーネルのアップデートとリブート
モジュール・カーネルをアップデートしてリブートします。 この際、screenもインストールしておきます。
[stack@rdo ~]$ sudo yum -y install screen
[stack@rdo ~]$ sudo yum -y update
[stack@rdo ~]$ sudo reboot
これで、準備は完了です。 RDO Managerをインストールします。