Sugimura's。

技術的なメモを少々。

CentOS7 PostgreSQL

MySQLの記事はたくさんあるので、PostgreSQLを入れてみます。

インストールから。ついでなので -devel も入れました。

サービス名は postgresql ですか。

起動する前にDBを作成します。スクリプトがくっついてきてるんですね。

これで起動するはず。enableにもしておきます。

DBにログインするには初期設定では postgres ユーザになる必要があります。

Ruby on Rails から使えるように、一般ユーザ向けのスキーマを作成してみました。

無事作成できたので、sugimuraユーザからアクセスしてみます。

 

CentOS7 で Rails

gem install rails でインストールして rails new → rails server すれば起動というのはもう省略しときます。

問題なのはfirewallですね。iptables の上に firewalld というのがかぶさっているようです。まずは firewalld が動いていることを確認。

設定は firewall-cmd で行います。

この services に追加していくみたいですね。定義ファイルに書いてから追加のようです。/usr/lib/firewalld/services/ 以下にXMLで作ります。ここでは rails-webrick.xml として 3000/tcp を定義するように作ってみました。

定義ファイルを書いたら、reload すると一覧に出てきます。

有効にしてみます。

iptables でも確認することができます。

ここまで設定できれば、ブラウザからアクセスしてみるといつものWEBrickの画面になることが確認できるかと思います。

CentOS7-Rails

(参考文献)

 

CentOS7 で Ruby

CentOS6.4の頃 とほとんど同じですね。git は Development Tools に入っているようです。まずはrootにてパッケージをインストール。必要なライブラリに libffi-devel が追加になっています。

今回もRubyは一般ユーザで入れてみます。

login し直して rbenv を叩きます。install にはしばらく時間がかかります。build のログは /tmp/ruby-build.*.log に出ているので、眺めていてもいいでしょう。

KVM

libvirt 管理下にある KVM の場合、virsh で仮想マシンを扱います。よく使うのはこんな感じ。

  • virsh list … 起動中の仮想マシンの一覧
  • virsh list –all … すべての仮想マシンの一覧
  • virsh start [VM名] … 起動
  • virsh shutdown [VM名] … 停止
  • virsh reboot [VM名] … 再起動
  • virsh console [VM名]  … コンソール接続
  • virsh edit [VM名] … 設定ファイルの編集
  • virsh undefine [VM名] … 定義削除 

実際の例を挙げてみます。

仮想マシンの定義ファイルは /etc/libvirt/qemu/ の下に XML ファイルで置いてあるんですが、直接編集したときは libvirtd を再起動しないと有効にならないようです。virsh edit [VM名] ならすぐ反映されます。

この定義ファイルの最初に <domain type=’kvm’> となっている場所があります。CentOS5で試したときはこれが type=’qemu’ になってしまうことがあり、動作がかなり遅くなって困りました。いまはデフォルトで type=’kvm’ になっているようです。

 

 

 

CentOS7 KVM

KVMで遊んでみます。

カーネルモジュールを確認します。

libvirtd を有効にします。CentOS7 からsystemdなので、流儀が違いますね。/usr/lib/systemd/system 以下に起動スクリプトが入っているそうなのですが、設定ファイル風なので慣れるまでは時間がかかりそうです。

サービスの一覧を取得して確認し、enabled にします。

起動しておきますか。

systemd周りはまだよくわからないので、後でまとめておきます。

KVMではゲストOSのネットワークにブリッジを使うので、あらかじめ設定します。これもだいぶ流儀が違いますね。

既存のネットワークインタフェースを消して繋ぎ直します。まず ip addr でインタフェース名を取得します。いまどきは ifconfig は使わないんですよね。

eth0 とかではなく eno16777736 なんですね。なんでこんなことになってるのかわかりませんが、これを削除して後から繋ぎ直します。remoteから入っているときはここで切れちゃうので要注意です。

再度 ip addr で確認してみます。br0 にアドレスが付いていて、インタフェース側は master br0 となっていればOKです。

これでまた外からsshで繋げられるようになったので、作業もやりやすくなります。

ようやく仮想マシンを作成できるようになりました。あとはこれまでのやり方と同じですね。

(参考文献)

いったんここまで。

Solaris11

IPMPを除去してやり直し。

zoneも一旦削除。消したり作ったりを繰り返すと勉強になりますね。

これでインストール直後の状態に戻ったので、再度zoneを作り直し。作る方法はすでに書いた通りです。

起動できたのでconsoleからログインし、それぞれにIPアドレスを振っておきます。

  • global: 192.168.0.220/24
  • zone1: 192.168.0.221/24
  • zone2: 192.168.0.222/24

一応できましたが、zone1やzone2からインターネットに出ることができずにいます。引き続き検証中。

pkg ほにゃらら でパッケージのインストールはできるようなのですが、どうもよくわかりません。中途半端ですがここらへんで一段落としようと思います。

Solaris11 Zones

zone を作ってみます。 まずZFSのpoolは先日このように用意しておきました。mypoolの下にzoneを2つ作ってみます。

(いまのところネットワークがうまく繋がっていないです。IPMPと併用するとうまくいかないのか、他の理由なのか…)

zfs create で領域を作ります。

zonecfg で zone を作ってみます。

zone2 も同様に作りました。

install してみます。pkg.oracle.com からパッケージを取ってくるので時間がかかります。頻繁にやるならローカルに立てたほうがいいでしょう。立て方は公式ドキュメントの Oracle Solaris 11 パッケージリポジトリのコピーおよび作成 に書いてあります。今回は普通にインターネット経由で取得してきました。

もし失敗したらやり直します。(例)

無事installが完了したら、起動することを確認してみます。

起動したらコンソールを取ります。

通常のSolaris11のインストール画面のような初期設定が終わると、ログインできるようになります。

一旦落とします。zlogin から抜けるには ~. です。ssh で global zone に入っているときは、~~. で抜けられます。

zone1をzone2にコピーしてみます。zone2 は zone1 の clone ですよと指定するんですね。

これで2つのzoneをそれぞれ使えるようになりました。両方起動すると次のようになります。

引き続きこの環境でいろいろ実験していきます。

(参考文献)

 

Solaris11 IPMP

きょうはIPMPでもやってみますか。

まず2本NICを刺しておきます。起動したら両方ともDHCPでIPアドレスが振られてました。

これらを link-based IPMP にして、IPアドレスを1つ付けるように変えてみます。

まずいま付いているIPアドレスを削除。

次にIPMPインタフェースを作成します。

IPMPに対してIPアドレスを振ります。ここでは 192.168.0.220 にしました。

いまは inbound に net0、outbound に net0 と net1 の両方が使われていることがわかります。

VMware で net0 を止めてみます。

IPMP

ssh で接続していたのですが、セッションが切れずに net1 だけが使われるようになりました。

syslog には次のように記録されます。

戻しておきます。接続復旧時の syslog はこんな感じ。

(参考文献)

 

(補足)

そのままでは外に出ないようになっていました。

デフォルトゲートウェイを追加しておきます。

外には出ることができるようになりましたが、名前が引けないので設定しておきます。

これで名前も引けるようになりました。