Microsoft Azure の Virtual Machines 上での動作がサポートされている Linux イメージは、Red Hat Enterprise Linux (RHEL) 含め、複数存在します。
- 動作保証済み Linux ディストリビューション | Microsoft Azure
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-endorsed-distributions/
ギャラリー (クラシック ポータル) や Marketplace (新ポータル) を用いてデプロイした場合、既定では英語表示となります。
また、接続には SSH 経由でコンソール上からの操作となりますが、色々と検証する上で Azure Virtual Machines 上にデプロイした Linux OS を日本語表示、および RDP 経由で GUI 操作を行う必要が出てくると思います。
本記事では、CentOS ベースの OpenLogic 6.7 を対象に日本語化、RDP 経由でアクセスする手順を備忘録として纏めてみました。
注意しておく点としては、管理者ユーザー (root) は無効となっているため、root の特権レベルで実行するためにはデプロイ時に作成したユーザー上で sudo コマンドを多用する必要があります。
設定手順
- 現在の OS バージョンの確認
- 以下のコマンドを入力、実行し、現在の OS のバージョンを確認します。
cat /etc/redhat-release
- ログインしているユーザーの言語を日本語に設定
- 以下のコマンドを入力、実行し、編集します。
vi ~/.bash_profile
※最終行に以下を追記します。
LANG=ja_JP.UTF-8 export LANG
- 以下のコマンドを入力、実行します。
source ~/.bash_profile
- 以下のコマンドを入力、実行し、現在読み込まれている言語を確認します。
echo $LANG
- システム ロケールおよびキーマップを日本語に設定
- 以下のコマンドを入力、実行し、編集します。
sudo vi /etc/sysconfig/i18n
※以下の行を編集する
編集前: LANG="en_US.UTF-8" 編集後: LANG="ja_JP.UTF-8"
- 以下のコマンドを入力、実行します。
source /etc/sysconfig/i18n
- 以下のコマンドを入力、実行し、システム ロケールおよびキーマップ設定を確認します。
locale
- タイムゾーンを 日本時間 (JST、”Tokyo”) に設定
- 以下のコマンドを入力、実行します。
sudo cp /usr/share/zoneinfo/Japan /etc/localtime
- 以下のコマンドを入力、実行し、編集します。
sudo vi /etc/sysconfig/clock
※以下の行を編集する
編集前: ZONE="Etc/UTC" 編集後: ZONE="Asia/Tokyo"
- 以下のコマンドを入力、実行し、タイムゾーン設定を確認します。
date
- 最新版のソフトウェアにアップデートする
- 以下のコマンドを入力、実行し、ソフトウェアのアップデートを行います。
sudo yum check-update sudo yum update -y
- 以下のコマンドを入力、実行し、システムを再起動します。
sudo reboot
- システム再起動後、以下のコマンドを入力、実行し、アップデート後の OS バージョンの確認を行います。
cat /etc/redhat-release
※現時点 (2016/03/03) におけるバージョン 6 の最新版は「6.7」であるため、アップデート後もバージョン番号は「6.7」と表示されます。 - GUI 関連パッケージのインストール
- 以下のコマンドを入力、実行し、GUI 関連パッケージのインストールを行います。
※OpenLogic 6.7 でインストールされる WALinuxAgent と NetworkManager の相性が悪い (依存関係でエラーとなる) ため、WALinuxAgent をアンインストール、GUI 関連パッケージをインストールした後、NetworkManager をアンインストール、WALinuxAgent を再度インストールしています。sudo yum remove -y WALinuxAgent-2.0.14-1.noarch sudo yum groupinstall -y "X Window System" "Desktop" "Fonts" "General Purpose Desktop" "Japanese Support" sudo yum remove -y NetworkManager-0.8.1-99.el6.x86_64 sudo yum install -y WALinuxAgent-2.0.14-1.noarch
- WALinuxAgent issues when installing GUI Environment on CentOS
https://social.msdn.microsoft.com/forums/azure/en-us/e836aa6a-65cb-47dd-81d5-363ffc013c75/walinuxagent-issues-when-installing-gui-environment-on-centos - 以下のコマンドを入力、実行し、システムを再起動します。
sudo reboot
- xrdp のインストールおよび設定
- 以下のコマンドを入力、実行し、外部レポジトリとして EPEL (エンタープライズ Linux 用の拡張パッケージ) パッケージをダウンロード、インストールします。
mkdir EPEL cd EPEL sudo wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -ivh epel-release-6-8.noarch.rpm
- 以下のコマンドを入力、実行し、xrdp と関連する tigervnc-server をインストールします。
sudo yum install -y xrdp tigervnc-server
- OpenLogic 6.7 で使用される EPEL パッケージ内の xrdp のバージョンが古いため、以下のコマンドを入力、実行し、日本語キーボード対応にします。
cd /etc/xrdp<br>sudo wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini<br>sudo cp km-e0010411.ini km-0411.ini<br>sudo cp km-e0010411.ini km-e0200411.ini<br>sudo cp km-e0010411.ini km-e0210411.ini<br>
- 以下のコマンドを入力、実行し、SELinux の設定を変更します。
sudo chcon --type=bin_t /usr/sbin/xrdp sudo chcon --type=bin_t /usr/sbin/xrdp-sesman
- 以下のコマンドを入力、実行し、SELinux の設定を確認します。
ls -lZd /usr/sbin/xrdp*
- 以下のコマンドを入力、実行し、VNC サーバーの設定ファイルを編集します。
sudo vi /etc/sysconfig/vncservers
※最終行に以下を追記します。
VNCSERVERS="2:<ユーザー名>" VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
※<ユーザー名>はサーバー上に存在するユーザー アカウントを指定します。
- 以下のコマンドを入力、実行し、ユーザー切替、VNC のパスワードを設定、そして再度ユーザーを切替えます。
su - <ユーザー名> /usr/bin/vncpasswd exit
※<ユーザー名>は、この前の手順で指定したユーザー アカウントを入力します。また、パスワードは 2 回入力する必要があります。
- 以下のコマンドを入力、実行し、xrdp (xrdp) および tigervnc-server (vncserver) を実行、および自動起動を有効にします。
sudo service vncserver start sudo service xrdp start sudo chkconfig xrdp on sudo chkconfig vncserver on
- 以下のコマンドを入力、実行し、xrdp (xrdp) および tigervnc-server (vncserver) がサービスとして起動していることを確認します。
service vncserver status
- 以下のコマンドを入力、実行し、xrdp で使用する待受ポート (3389) を開放、設定を反映します。
sudo iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT sudo service iptables save sudo service iptables restart
- 以下のコマンドを入力、実行し、ファイアウォール (iptables) がサービスとして起動していることを確認します。
sudo service iptables status
- Azure 上で xrdp で使用する待受ポート (3389) の開放を実施
- Azure ポータル上から xrdp で使用する待受ポート (3389) の開放を実施します。
※作成した Virtual Machines (Azure Service Management、もしくは Azure Resource Manager) で設定方法は異なるので省略。 - リモート デスクトップ接続経由でログイン
- リモート デスクトップ接続 (mstsc.exe) を起動し、接続します。
- ユーザー名とパスワードを入力、ログインします。
- 管理者ユーザー (root) は無効となっているため、[キャンセル] をクリックします。
※確認した限りでは、root 以外の管理者ユーザーでの指定はできませんでした。 - WALinuxAgent のアップデート
- [アプリケーション] – [システムツール] – [端末] を選択、クリックし、端末コンソールを起動します。
- 以下のコマンドを入力、実行し、ソフトウェアのアップデートを行います。
sudo yum check-update sudo yum update -y
- 以下のコマンドを入力、実行し、システムを再起動します。
sudo reboot
おまけ
root ユーザーにパスワードを設定にしたい
root ユーザーにパスワードを設定できるようにするには、セキュリティが低下する恐れがありますが、以下の手順で root ユーザーを有効化、パスワードを設定することができます。
- [アプリケーション] – [端末] を選択、クリックし、端末コンソールを起動します。
- 以下のコマンドを入力、実行します。
sudo pwunconv sudo pwconv
- 以下のコマンドを入力、実行し、root のパスワードを設定します。
sudo passwd root
参考
- 動作保証済み Linux ディストリビューション | Microsoft Azure
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-endorsed-distributions/ - Linux を実行する仮想マシンを Azure クラシック ポータルで作成する | Microsoft Azure
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-tutorial-portal-rm/ - Azure での Linux VM へのログオン | Microsoft Azure
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-how-to-log-on/ - GitHub から Azure Linux エージェントを更新する | Microsoft Azure
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-update-agent/