
CentOS7でサーバを構築しています。
前のバージョンに比べてかなり変化が大きいので、半分memoですね。
とりあえずVNCを
いきなり関係無いけど、SELinuxは使わないので切る
# vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled
うちのサーバは場所的に直接触りづらい環境なので、VNCを使えるようにする。
セキュリティ設定は後回し。まずはインスコ。
# yum install tigervnc tigervnc-server
設定を確認
# cat /etc/sysconfig/vncservers
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
/lib/systemd/system/vncserver@.serviceを見る
# more /lib/systemd/system/vncserver@.service
~略
説明が出てくるのでその通りにする。「:1」の部分は任意の数字なんだけど、とりあえず1で
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
コピったファイルの<USER>の部分を実行したいユーザに書き換える
vi /etc/systemd/system/vncserver@:1.service
設定を有効にする。この辺もファイル内の説明の通り
# systemctl daemon-reload
# systemctl enable vncserver@:1.service
特に説明には書いてなかったけど、実行ユーザになってパスワードファイルを作成
# su – user
$ vncpasswd
Password:
Verify:
んで、起動(rootで)
# systemctl start vncserver@:1.service
いいとも悪いとも行ってこないので、確認
# systemctl status vncserver@:1.service
vncserver@:1.service – Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled)
Active: active (running) since 月 2014-07-14 23:20:54 JST; 39s ago
Process: 27926 ExecStart=/sbin/runuser -l XXXX-c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
Process: 27922 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 27960 (Xvnc)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
? 27960 /usr/bin/Xvnc :1 -desktop localhost.localdomain:1 (XXXX) -auth /home/XXXX/.Xauthority -geometry 1024×76…7月 14 23:20:54 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
めっちゃ詳しいステータス。ちなみにディスプレイ番号は「:1」にしたので5901ポートが使われてます。
しかしながら遮断されてるので繋げることができません。今まではiptablesでしたが、CentOS7からはfirewalldに変わりました。
まずは稼働確認
# systemctl status firewalld.service
初期値を確認
# firewall-cmd –list-all-zones
~略~
public (default, active)
interfaces: eno1 virbr0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
~略~
パッと見たところpublicにNICのeno1(今までで言うところのeth0)が定義されてて、ここにVNCポートを定義してみる。
# firewall-cmd –zone=public –add-port=5901/tcp
success
# firewall-cmd –zone=public –add-port=5901/tcp –permanent
success# firewall-cmd –list-all-zones
~略~
public (default, active)
interfaces: eno1 virbr0
sources:
services: dhcpv6-client ssh
ports: 5901/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:~略~
実行結果がやけにあっさりしてる。–permanentを付けないと永続的な変更にならないらしいです。付いてない方も反映で必要。
そしていろいろ設定したのでここで再起動→VNCクライアントから接続OKになりました。
systemctl
chkconfigに変わって使うようになるコマンド。実際にはchkconfigよりもいろいろできる(やらされる)
とりあえず一覧表示、出し方はいろいろあるみたいね
systemctl –full
systemctl list-dependencies
サービス(デーモン)の有効/無効
# systemctl enable サービス名.service
# systemctl disable サービス名.service
実行すればわかるけど、起動スクリプトの実体は「/etc/systemd/system/サービス名」や「/usr/lib/systemd/system/サービス名」で、そのショートカットを「/etc/systemd/system/multi-user.target.wants/サービス名」に置くことで自動起動の設定を有効にするっぽい。
「multi-user.target.wants」が今までで言うランレベル3なので、/etc/init.d/デーモンを/etc/rc3.d/デーモンに置くと同じ意味っぽい。
ただ、実行順序の定義がどうなっているかは謎。
サービス(デーモン)の起動/停止など
# systemctl start サービス名.service
# systemctl stop サービス名.service
ほぼコマンドが変わっただけ

[…] その1の続きです […]