Skip navigation

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コマンドで、

  1. btrfs subvol=rootbtrfs subvol=root,noatime,discard,ssd,compress=lzo,space_cache に置き換えます。
  2. btrfs subvol=homebtrfs 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.localdomainrdo.local に置き換えます。

モジュール・カーネルのアップデートとリブート

モジュール・カーネルをアップデートしてリブートします。 この際、screenもインストールしておきます。

[stack@rdo ~]$ sudo yum -y install screen
[stack@rdo ~]$ sudo yum -y update
[stack@rdo ~]$ sudo reboot

これで、準備は完了です。 RDO Managerをインストールします。

OpenStack RDO Managerインストール (2)