ふぅ。早いもんですねぇ。
毎年ですが誕生日くらいは自分で盛り上げていくようにしてます。
ふぅ。早いもんですねぇ。
毎年ですが誕生日くらいは自分で盛り上げていくようにしてます。
MySQLの記事はたくさんあるので、PostgreSQLを入れてみます。
インストールから。ついでなので -devel も入れました。
[root@guest1 ~]# yum install postgresql postgresql-devel postgresql-server
サービス名は postgresql ですか。
[root@guest1 ~]# systemctl list-unit-files| grep postgresql postgresql.service disabled
起動する前にDBを作成します。スクリプトがくっついてきてるんですね。
[root@guest1 ~]# postgresql-setup initdb Initializing database ... OK
これで起動するはず。enableにもしておきます。
[root@guest1 ~]# systemctl enable postgresql ln -s '/usr/lib/systemd/system/postgresql.service' '/etc/systemd/system/multi-user.target.wants/postgresql.service' [root@guest1 ~]# systemctl start postgresql [root@guest1 ~]#
DBにログインするには初期設定では postgres ユーザになる必要があります。
[root@guest1 ~]# su - postgres -bash-4.2$ psql psql (9.2.7) Type "help" for help. postgres=# \q
Ruby on Rails から使えるように、一般ユーザ向けのスキーマを作成してみました。
postgres=# CREATE USER sugimura ENCRYPTED PASSWORD 'XXXXXXXX'; CREATE ROLE postgres=# postgres=# CREATE DATABASE railsdb OWNER sugimura postgres-# TEMPLATE template0 postgres-# ENCODING 'UTF-8' LC_COLLATE 'ja_JP.UTF8' LC_CTYPE 'ja_JP.UTF8' postgres-# ; CREATE DATABASE postgres=#
無事作成できたので、sugimuraユーザからアクセスしてみます。
[sugimura@guest1 ~]$ psql -U sugimura -d railsdb -W ユーザ sugimura のパスワード: psql (9.2.7) "help" でヘルプを表示します. railsdb=>
gem install rails でインストールして rails new → rails server すれば起動というのはもう省略しときます。
[sugimura@guest1 sample]$ rails server => Booting WEBrick => Rails 4.2.0 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2015-01-23 12:07:08] INFO WEBrick 1.3.1 [2015-01-23 12:07:08] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux] [2015-01-23 12:07:08] INFO WEBrick::HTTPServer#start: pid=11897 port=3000
問題なのはfirewallですね。iptables の上に firewalld というのがかぶさっているようです。まずは firewalld が動いていることを確認。
[root@guest1 ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: active (running) since Thu 2015-01-22 15:05:23 JST; 24h ago Main PID: 535 (firewalld) CGroup: /system.slice/firewalld.service └─535 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid Jan 22 15:05:23 localhost.localdomain systemd[1]: Started firewalld - dynamic... Hint: Some lines were ellipsized, use -l to show in full. [root@guest1 ~]#
設定は firewall-cmd で行います。
[root@guest1 ~]# firewall-cmd --list-all public (default, active) interfaces: eth0 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
この services に追加していくみたいですね。定義ファイルに書いてから追加のようです。/usr/lib/firewalld/services/ 以下にXMLで作ります。ここでは rails-webrick.xml として 3000/tcp を定義するように作ってみました。
[root@guest1 ~]# cat /usr/lib/firewalld/services/rails-webrick.xml[root@guest1 ~]# Ruby on Rails (WEBrick) Ruby on Rails (WEBrick)
定義ファイルを書いたら、reload すると一覧に出てきます。
[root@guest1 ~]# firewall-cmd --reload success [root@guest1 ~]# firewall-cmd --get-services amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rails-webrick rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https [root@guest1 ~]#
有効にしてみます。
[root@guest1 ~]# firewall-cmd --add-service=rails-webrick --permanent success [root@guest1 ~]# firewall-cmd --reload success [root@guest1 ~]# firewall-cmd --list-service dhcpv6-client rails-webrick ssh [root@guest1 ~]#
iptables でも確認することができます。
[root@guest1 ~]# iptables -L -n Chain INPUT (policy ACCEPT) ... INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0 ... Chain INPUT_ZONES (1 references) target prot opt source destination IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto] IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto] ... Chain IN_public (2 references) target prot opt source destination IN_public_log all -- 0.0.0.0/0 0.0.0.0/0 IN_public_deny all -- 0.0.0.0/0 0.0.0.0/0 IN_public_allow all -- 0.0.0.0/0 0.0.0.0/0 ... Chain IN_public_allow (1 references) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3000 ctstate NEW ...
ここまで設定できれば、ブラウザからアクセスしてみるといつものWEBrickの画面になることが確認できるかと思います。
(参考文献)
CentOS6.4の頃 とほとんど同じですね。git は Development Tools に入っているようです。まずはrootにてパッケージをインストール。必要なライブラリに libffi-devel が追加になっています。
[root@guest1 ~]# yum groupinstall "Development Tools" [root@guest1 ~]# yum install zlib-devel openssl-devel readline-devel libffi-devel
今回もRubyは一般ユーザで入れてみます。
[sugimura@guest1 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv Cloning into '/home/sugimura/.rbenv'... remote: Counting objects: 2002, done. remote: Total 2002 (delta 0), reused 0 (delta 0) Receiving objects: 100% (2002/2002), 318.89 KiB | 161.00 KiB/s, done. Resolving deltas: 100% (1249/1249), done. [sugimura@guest1 ~]$ [sugimura@guest1 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build Cloning into '/home/sugimura/.rbenv/plugins/ruby-build'... remote: Counting objects: 4319, done. remote: Total 4319 (delta 0), reused 0 (delta 0) Receiving objects: 100% (4319/4319), 771.35 KiB | 253.00 KiB/s, done. Resolving deltas: 100% (2228/2228), done.
[sugimura@guest1 ~]$ echo 'PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile [sugimura@guest1 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
login し直して rbenv を叩きます。install にはしばらく時間がかかります。build のログは /tmp/ruby-build.*.log に出ているので、眺めていてもいいでしょう。
[sugimura@guest1 ~]$ rbenv install 2.2.0 [sugimura@guest1 ~]$ rbenv rehash [sugimura@guest1 ~]$ rbenv global 2.2.0
[sugimura@guest1 ~]$ ruby --version ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux] [sugimura@guest1 ~]$ gem list *** LOCAL GEMS *** bigdecimal (1.2.6) io-console (0.4.3) json (1.8.1) minitest (5.4.3) power_assert (0.2.2) psych (2.0.8) rake (10.4.2) rdoc (4.2.0) test-unit (3.0.8)
libvirt 管理下にある KVM の場合、virsh で仮想マシンを扱います。よく使うのはこんな感じ。
実際の例を挙げてみます。
[root@centos7 ~]# virsh list --all Id 名前 状態 ---------------------------------------------------- 3 guest1 実行中 [root@centos7 ~]# virsh console guest1 ドメイン guest1 に接続しました エスケープ文字は ^] です CentOS Linux 7 (Core) Kernel 3.10.0-123.13.2.el7.x86_64 on an x86_64 localhost login: sugimura Password: Last login: Thu Jan 22 15:00:15 on ttyS0 [sugimura@localhost ~]$
仮想マシンの定義ファイルは /etc/libvirt/qemu/ の下に XML ファイルで置いてあるんですが、直接編集したときは libvirtd を再起動しないと有効にならないようです。virsh edit [VM名] ならすぐ反映されます。
この定義ファイルの最初に <domain type=’kvm’> となっている場所があります。CentOS5で試したときはこれが type=’qemu’ になってしまうことがあり、動作がかなり遅くなって困りました。いまはデフォルトで type=’kvm’ になっているようです。