CentOS ベースの OpenLogic のテンプレートでデプロイした仮想マシンに、GNOME デスクトップ環境と VNC Server (TigherVNC) を入れて、VNC でデスクトップ接続してみます。RHEL や Oracle Linux の場合も同じ、または似たような感じだと思います。
備忘録につき、詳しい説明は省略ごめん。
CentOS (OpenLogic) 7.2 の場合...
(Azure ポータルのリソース マネージャーでデプロイした仮想マシンで試しています)
SSH で接続し、GNOME Desktop を入れて、RUN レベル 5 に変更して、再起動。
[azureuser@mycentos72]$ sudo yum groupinstall "GNOME Desktop"
[azureuser@mycentos72]$ sudo unlink /etc/systemd/system/default.target
[azureuser@mycentos72]$ sudo ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
[azureuser@mycentos72]$ sudo reboot
TigherVNC Server を入れて、SSH 接続ユーザー (この例は azureuser) による VNC 接続のためのサービスを構成し、サービスを開始。
[azureuser@mycentos72]$ sudo yum install tigervnc-server
[azureuser@mycentos72]$ vncpasswd
Password: ******
Verify: ******
[azureuser@mycentos72]$ sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
[azureuser@mycentos72]$ sudo vi /etc/systemd/system/vncserver@:1.service
変更前:
ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
↓変更後:
ExecStart=/sbin/runuser -l azureuser -c "/usr/bin/vncserver %i"
PIDFile=/home/azureuser/.vnc/%H%i.pid
↓
上書き保存:
:wq!
[azureuser@mycentos72]$ sudo systemctl daemon-reload
[azureuser@mycentos72]$ sudo systemctl enable vncserver@:1.service
[azureuser@mycentos72]$ sudo systemctl start vncserver@:1.service
ファイアウォールが有効な場合は許可(既定はファイアウォール無効)
[azureuser@mycentos72]$ sudo firewall-cmd --permanent --add-service vnc-server
[azureuser@mycentos72]$ sudo systemctl restart firewalld.service
Azure ポータルで 5901/TCP への接続を許可。
オンプレの環境からVNC接続を確認。私は Windows 版 TigherVNC Viewer を使用。Free の RealVNC は暗号化に対応していないため、接続が拒否されます。
TigerVNC
[URL] https://bintray.com/tigervnc/stable/tigervnc/1.6.0
CentOS (OpenLogic) 6.5 の場合...
(Azure クラシック ポータルでデプロイした仮想マシンで試しています)
CentOS 6.x の場合、GNOME Desktop でインストールされる NetworkManager がAzure Linux Agent (WALinuxAgent) と互換性がないので、ちょっとややこしいです。
SSH で接続し、GNOME Desktop を入れて、RUN レベル 5 に変更して、再起動。
[azureadmin@mycentos65 ~]$ sudo yum remove "WALinuxAgent"
(↑削除しとかないと、NetworkManager と Conflict して次の Desktop が入らないよ)
[azureadmin@mycentos65 ~]$ sudo yum groupinstall "X Window System" "Desktop" "Fonts" "General Purpose Desktop"
[azureadmin@mycentos65 ~]$ sudo yum remove NetworkManager
(↑削除しとかないと、NetworkManager と Conflict して次の WALinuxAgent が入らないよ)
[azureadmin@mycentos65 ~]$ sudo yum install "WALinuxAgent"
[azureadmin@mycentos65 ~]$ sudo vi /etc/inittab
変更前:
id:3:initdefault:
↓
変更後:
id:5:initdefault:
↓
上書き保存:
:wq!
TigherVNC Server を入れて、SSH 接続ユーザー (この例は azureuser) による VNC 接続のためのサービスを構成し、サービスを開始。
[azureadmin@mycentos ~]$ sudo yum install tigervnc-server
[azureadmin@mycentos ~]$ vncpasswd
Password: ******
Verify: ******
[azureadmin@mycentos65 ~]$ vncserver :1
[azureadmin@mycentos65 ~]$ vncserver -kill :1
[azureadmin@mycentos65 ~]$ vi ~/.vnc/xstartup
変更前:
twn &
↓
変更後:
#twm &
gnome-session &
↓
上書き保存:
:wq!
[azureadmin@mycentos65 ~]$ sudo vi /etc/sysconfig/vncservers
追記:
VNCSERVERS="1:azureuser"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"
# どうしても Free の RealVNC の vncviewer で接続したいなら...# VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -securitytypes=none"
↓
上書き保存:
:wq!
[azureadmin@mycentos65 ~]$ sudo chkconfig vncserver on
[azureadmin@mycentos65 ~]$ sudo service vncserver stop
[azureadmin@mycentos65 ~]$ sudo service vncserver start
ファイアウォールが有効な場合は許可(既定はファイアウォール無効)
[azureuser@mycentos72]$ vi /etc/sysconfig/iptables
追記:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
↓上書き保存:
:wq!
[azureuser@mycentos72]$ sudo service iptables stop
[azureuser@mycentos72]$ sudo service iptables start
Azure ポータルで 5901/TCP への接続を許可。
オンプレの環境からVNC接続を確認。
おまけ - VNCServer に RDP 接続
xrdp (http://www.xrdp.org/) を入れれば、VNC ではなく、RDP (3389/TCP) を使用してリモートデスクトップ接続クライアント(mstsc.exe) やRDP互換クライアントから VNC Server (または X11rdp) に接続できます。
CentOS 7.x の場合...
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
$ sudo yum install xrdp
$ sudo chcon -t bin_t /usr/sbin/xrdp*
$ sudo systemctl start xrdp.service
$ sudo systemctl enable xrdp.service
$ sudo systemctl start xrdp-sesman.service
CentOS 6.x の場合...
$ sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum install xrdp
$ sudo chkconfig xrdp on
$ sudo service xrdp start
参考:
Remote Desktop to your Linux Azure Virtual Machine
[URL] https://blogs.msdn.microsoft.com/cloud_solution_architect/2015/05/02/remote-desktop-to-your-linux-azure-virtual-machine/
xrdp をいGNOME Desktop に RDP で接続する
おまけ - ログオンするたびに Authenticate ダイアログ ボックスが出てくるけど認証に失敗
VNC や RDP で GNOME Desktop に接続すると、ログオンするたびに毎回「Authenticate」ダイアログボックスが表示され、root のパスワードの入力が求められると思います。これは、ログオン時に自動実行される PackageKit Update Applet (gpk-update-icon) が要求しているものです。
Azure Linux Agent (WALinuxAgent) によるイメージの一般化の際に root は無効化されているので、どんなパスワードを入れても認証をパスすることはできません。
root の認証は、他の管理ツール (例えば、System > Administration > Users and Groups) でも表示される場合がありますが、以下のように Terminal から sudo で実行すれば回避できます。
$ sudo system-config-users &
自動起動のアプリケーションが表示しているものですから、この方法は gpk-update-icon には適用できません。
ログオン時のこの問題を回避する方法の 1 つは、root を有効化すること (非推奨)。これで、root のパスワードで認証できるようになります。
$ sudo passwd root
New password: ******
Retype new password: ******
別の方法は、System > Preferences >Startup Applications でPakageKit Update Applet を無効にすること。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。