2018年6月23日土曜日

Ubuntu(デスクトップ 18.04 LTS)をVirtualBox上にインストールしてsshとRDPで接続可能な様に設定する

今回はUbuntu(Serverではなくデスクトップを入れてみる)まずは時間がかかるのでISOイメージをダウンロードしておく。
https://www.ubuntu.com/download/desktop
現在の最新版は、Ubuntu 18.04 LTS。
デスクトップ環境はデフォルトのGnomeでやってみたい。

VirtualBoxでマシンを作成。

Desktop版はそれなりにメモリを食うようなので一応メモリは4GB確保しておく。

ディスクサイズは、25 GB of free hard drive spaceと書いてあるので念のため可変ディスクで40GB確保。

デカい・・・。

作成したら右クリック→設定で「ubuntu-18.04-desktop-amd64.iso」ファイルをマウント。

ネットワーク設定をNATにして高度な設定を開き、ssh(port 22)、RDP(port 3389)をポートフォワーディングしておく。

OKで設定を保存して→ボタンで起動。

Englishのままでもいいが、今回は日本語にしてUbuntuをインストールをクリック。

キーボードレイアウトを検出は試してみたらヘブライ語とかになったりあまり使えないご様子なので、そのまま続ける。

アップデートと他のソフトウェアは今回特に変更しない。

ディスクを削除(=上書き)のままでインストール。

そのまま続ける。

タイムゾーンも特に変更なし。

名前とpasswordはとりあえず今回は全部ubuntu、個人使用なので自動ログインにしてしまう。

インストールが開始されるので待つ。(かなり時間がかかった)

終わったら再起動。

自動ログインに設定したのでそのままデスクトップが表示。


起動してきたらまずはopensshserverのインストール。
$ sudo apt install -y openssh-server

sshのpasswordログインを許可。
$ sudo vi /etc/ssh/sshd_config
で「# PasswordAuthentication yes」を#を削除しアンコメント。

サービスの設定。
$ sudo systemctl enable ssh
$ sudo systemctl restart ssh

これでlocalhost:22にsshでログインできる用になった。

次、XRDPを入れていきたい。
$ sudo apt install -y xrdp

セッション情報の設定を追加。
$ sudo vi ~/.xsessionrc
記載内容は次の通り
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
new_cursorsの無効化。
$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini

サービスの設定
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

Authentication Requiredダイアログの回避。
$ sudo vi /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
以下を追記、
[Netowrkmanager]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=yes
polkitのリスタート。
$ sudo systemctl restart polkit

Windowsからrdpで接続してみる。

何とか成功。

ただしこの設定だとVirtualBos上のUIからはログアウトしないとRDPではログイン出来ない点と、起動後の初回ログイン時に「カラープロファイルを作成するには認証が必要です」という無駄な認証画面↓が2回出てしまうようで面倒だ。

これらが解決出来たら追記しようと思う。

※参考サイト
https://www.hiroom2.com/2018/04/28/ubuntu-1804-xrdp-gnome-ja/

2018年6月22日金曜日

MicrosoftのリリースしたOSSテスト自動化ツールWinAppDriver UI Recorder

http://www.atmarkit.co.jp/ait/articles/1806/22/news036.html
率直に言うと上記の記事を読んで、まずこれがどういうものかについて、今一不勉強でよくわからなかったので調べてみた。

ざっくり言うとWebdriverというAPIを用いて自動テストを走らせるためのソフトである、WinAppDriver用のC#のソースコードを、操作を記録して自動生成するツールということになるようだ。

Webdriverというのは、ざっくりいうともともとはSeleniumという、Webに対する自動テストOSSで使われている、JAVAやC#を含む好きなプログラミング言語でテストを記述し、WebdriverAPIを使って、同じテストを
 Linux→Chromeドライバ
 Windows→IEドライバ
 etc...
というような各プラットフォームのドライバ(要するに自動操作を受け付けるためのサーバです)に実行させる仕組み。

このWebdriverの仕組みは前述の通りもともとはWebアプリケーションの自動テストで使われていましたが、現在ではAppiumという名称でAndroidやiOS用のドライバやWindows向けには WinAppDriver等々の各種プラットフォーム向けのドライバーが開発されて、モバイルやアプリケーションの領域まで拡張されてきた。
また、このWebdriverの仕組みはW3Cでも標準化されるなど(https://www.w3.org/TR/webdriver/)テスト自動化ツールではかなり主流といって良い仕組みになっている。

例えば電卓を起動して123+456を計算し、電卓を閉じるという操作を行った場合の出力コードは次のようなものになっているようだ。
// KeyboardInput VirtualKeys="Keys.Command+ "" + Keys.Command"calc"Keys.Return" CapsLock=False NumLock=True ScrollLock=False
Console.WriteLine("KeyboardInput VirtualKeys=\"Keys.Command+ \"\" + Keys.Command\"calc\"Keys.Return\" CapsLock=False NumLock=True ScrollLock=False");
winElem0.SendKeys(Keys.Command+ "" + Keys.Command);
winElem0.SendKeys("calc");
winElem0.SendKeys(Keys.Return);

// KeyboardInput VirtualKeys=""123+456"Keys.Return" CapsLock=False NumLock=True ScrollLock=False
Console.WriteLine("KeyboardInput VirtualKeys=\"\"123+456\"Keys.Return\" CapsLock=False NumLock=True ScrollLock=False");
winElem0.SendKeys("123+456");
winElem0.SendKeys(Keys.Return);

// MouseHover on "表示は 579 です" at (193,2)
Console.WriteLine("MouseHover on \"表示は 579 です\" at (193,2)");
string xp3 = "/Pane[@Name=\"デスクトップ 1\"][@ClassName=\"#32769\"]/Window[@Name=\"電卓 ‎- 電卓\"][@ClassName=\"ApplicationFrameWindow\"]/Window[@Name=\"電卓\"][@ClassName=\"Windows.UI.Core.CoreWindow\"]/Text[@AutomationId=\"CalculatorResults\"][@Name=\"表示は 579 です\"]";
var winElem3 = MyDesktopSession.FindElementByXPath(xp3);
if (winElem3 != null)
{
   //TODO: Hover at (193,2) on winElem3
}
else
{
    Console.WriteLine($"Failed to find element {xp3}");
    return;
}
一見してわかる通り、そのまま使えるケースはよくあるキャプチャ&リプレイ系のツールと同じく、恐らく稀で、現実的にはプログラミング言語によるテストコードの開発を支援するツールという位置づけになりそうだ。

開発プロセスにもよりそうだが、Webdriver回りのフレームワークでは、基本的に開発者がテストコードを作るあるいは、テストコードを先に作ってそれを満たすソフトを開発するというのが想定されているようで、従来こういったキャプチャリプレイ系のツールというのはこれまであまり出てきていない様に見える。

SeleniumではSelenium IDEやSelenium builderというキャプチャ&リプレイツールが存在するものの、あまり活発とは言えない状況に見える。
半ば想像ではあるがこの理由は開発者がテストコードを作るのであれば、基本的にキャプチャツールはそれほど必要ないのと、キャプチャは当然ながらある程度動くプロトタイプが仕上がってからでないと使い物にならないため、開発初期の単体テストやフォーム単位の動作確認等ではあまり役に立たないという事情があるのではないかと思う。
そういった意味では今後、Microsoftがどのくらいこれをメンテナンスし続けていくかは注目に値しそうだ。

※もしご存じの方で理解が違う点があれば、突っ込みいただければ幸いです。

2018年6月20日水曜日

Ubuntu Serverをバーチャルボックスへインストールしssh接続可能な設定をして仮想アプライアンスを作成

故あって普段慣れているRHEL系のCentosではなくUbuntuも使う必要が出てきたので、Ubuntu Serverをバーチャルボックスへインストールし仮想アプライアンスを作成してみたい。

まずデスクトップだと重そうなのでこちらからUbuntu ServerのISOをダウンロード。
https://www.ubuntu.com/download/server

次のような設定でマシンを作成。

右クリックの設定からストレージにダウンロードしたISOファイルをマウント。

作業はsshでやりたいので、22をlocalhostからリダイレクトしておく。

→ボタンでマシンを起動。

あ、Ubuntu ServerのインストーラってCLIなんだ、知らなかった。日本語ないし。。。
まーやってみたらマウスが無いだけで、実質GUIに近いCLIかも。

仕方ないのでEnglishを選択。

そのままDone

もちろんInstall Ubuntu、そのままEnter。

DHCPになってるのでそのままDone。

自宅ではProxyは不要なのでそのままDone。

パーティションも今回は特にこだわらないのでそのままDone。

CDにインストールしても仕方ないので、VBOX_HARDDISK*を選択してEnter。

そのままDone。

Noを選んでも仕方ないのでContinue。

ユーザ名等は適宜。Ubuntuでは普通にインストールしたのではrootではログインさせてくれないらしいので、仕方なくユーザを作っておく。今回は面倒なのでubuntu/ubuntuとかにした。
※ちなみに試しにrootってユーザ名にしてみたらホームディレクトリが作れないとか言って落ちた。。。
sshキーのインポートは面倒くさいので今回はパス。

っていうかこの画面ですでになんかインストール始めてるみたいなので、一瞬早く入力しないといけないの?とか思ったがそんなアホなつくりには、さすがになっていなさそうなので、ゆっくり入力すればOK。

無事終わったようなのでReboot Now。

Please remove the installation medium, then press Enter:と言われたが、ディスクは勝手にアンマウントされていた。

とりあえずログインできたので成功?

ping 8.8.8.8も通るしまぁ大丈夫そう。

Firewallの設定
$ sudo ufw allow 22
$ sudo ufw reload

CentosだとこれでID/PWでsshログインできるんだけど、Ubuntuはどうなんだろう?
・・・だめらしい。やっぱなれない環境は面倒臭いな。

sshサーバ入れてみる。
$ sudo apt-get install -y openssh-server

あれ、入ってるじゃん。

設定か、
$ sudo vi /etc/ssh/sshd_config
で見てみると、「# PasswordAuthentication yes」
こんな行があったのでアンコメントしてみる。

OK完了。とりあえずこれでバーチャルアプライアンスにしておく。
$ sudo shutdown -h now

でシャットダウン後にVirtualBoxのメニューでファイル→エクスポートからエクスポートで完了。

余談だが、CentosのMinimalインストールしたバーチャルアプライアンスが660MBだったのに対して、Ubuntu Serverのバーチャルアプライアンスは1.1GBもあった。

しかし、毎回sudoが要求されるのがCentosでrootで作業に慣らされた身としては面倒臭い。
特にviをsudoせずに開いて頑張ってconfig設定した後に権限で文句言われるとかマジでつらい。
慣れりゃどうってことないんだろうけど。

2018年6月19日火曜日

Centos7でRedmineを構築する

最近チームのタスク管理やら問い合わせ管理の方法で頭を悩ませている。
タスク管理ツールなのか、チケット管理ツールなのか、プロジェクト管理ツールなのか、問い合わせ管理ツールなのか、あるいはGoogleスプレッドシートが一番いいのか、まだ答えは出ていないが、候補の一つとして検討したRedmineが曲者だったので、メモを兼ねて。

さてしょっぱなから情けないが、Ruby on Railsの環境を構築してRedmineの公式パッケージをダウンロードしてきて、という王道の手順は挫折したことをお断りしておきたい。

今回はBitnamiのインストーラを使わせてもらった。

・・・が、さすが、構築ずっこけるとあちこちで言われているRedmine・・・。
それでも躓きが無いわけではなかったのでそのあたりもメモしておきたい。

環境は例によってCentos7をVirtualBox上でMinimalインストールした仮想マシンで進めたい。

ネットワークはNATでポートフォワーディングをひとまずこんな感じにしておく。

まずはwgetをインストール。
# yum install -y wget

やらなくても通るかもしれないが、変なところで邪魔されると嫌なので念のためSE Linuxを無効化。
# setenforce 0

# vi /etc/selinux/config
編集内容→SELINUX=disabled

Firewallでhttpを通す。
# firewall-cmd --add-port=80/tcp --permanent
# firewall-cmd --reload

bitnamiのインストーラをダウンロード。
# wget https://bitnami.com/redirect/to/225667/bitnami-redmine-3.4.6-0-linux-x64-installer.run
※インストーラの最新のURLはこちらで探す。

実行権限をつける。
# chmod 777 bitnami-redmine-3.4.6-0-linux-x64-installer.run

嵌りポイントここから


これで「./bitnami-redmine-3.4.6-0-linux-x64-installer.run」とインストーラ起動すれば、全部やってくれて楽勝じゃん、と思ったら・・・
/opt/redmine-3.4.6-0/mysql "****" :
/opt/redmine-3.4.6-0/mysql/scripts/myscript.sh: scripts/mysql_install_db:
/usr/bin/perl: 誤ったインタプリタです: そのようなファイルやディレクトリはありま せん
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/opt/redmine-3.4.6-0/mysql/tmp/mysql.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/opt/redmine-3.4.6-0/mysql/tmp/mysql.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/opt/redmine-3.4.6-0/mysql/tmp/mysql.sock' (2)
続けるには [Enter] キーを押してください :
警告: インストール後の処理を実行中に問題が発生しました。インストールが正しく完了していない可能性があります
 実行中にエラーが起きました /opt/redmine-3.4.6-0/mysql/bin/mysql -h localhost -u root -p****
-S ../tmp/mysql.sock -e "CREATE DATABASE IF NOT EXISTS bitnami_redmine;GRANT ALL
PRIVILEGES on bitnami_redmine.* to 'bitnami'@'localhost' identified by
'****';flush privileges;" : Warning: Using a password on the command line
interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'../tmp/mysql.sock' (2)

なんか盛大にエラー吐いた。
Enterで継続するというので継続してみたが、当然インストールもずっこけてる様で、http://localhost/redmine/のページは404。。。

いろいろ調べた結果としては、
ここに書いてある通り、LAMPスタックをインストールする前に必要なperl-data-dumperが無いというのが原因なようで、事前に「yum install -y perl-data-dumperがworkaround」との事。
ちなみに「yum install -y perl-Data-Dumper」じゃないと通らない・・・。

ということで、perl-Data-Dumperを追加。
# yum install -y perl-Data-Dumper

嵌りポイントここまで


気を取り直してインストールする前のスナップショットに戻ってインストーラを起動。
# ./bitnami-redmine-3.4.6-0-linux-x64-installer.run

以下対話型インターフェースで、次のような感じ。
Language Selection

Please select the installation language
[1] English - English
[2] Spanish - Espanol
[3] Japanese - 日本語
[4] Korean - ???
[5] Simplified Chinese - ?体中文
[6] Hebrew - ?????
[7] German - Deutsch
[8] Romanian - Roman?
[9] Russian - Русский
Please choose an option [1] : 3
Bitnami Redmine Stack requires at least 2000MB of memory and the installer has detected 1811MB of memory. This may prevent the application from installing, working properly or cause it to stop functioning due to lack of memory. Visit the following link to learn how to increase the swap space.

https://bitnami.com/lowmemory

Continue with installation? [Y/n]: y

----------------------------------------------------------------------------
ようこそ Bitnami Redmine Stack セットアップウィザードへ。
----------------------------------------------------------------------------
インストールするコンポーネントを選択してください。インストールしないコンポーネントの選択を外してください。準備ができたら“次へ“をクリックしてください。

Subversion [Y/n] :n

PhpMyAdmin [Y/n] :n

Redmine : Y (Cannot be edited)

Git [Y/n] :y

上記選択部分が正しいことを確認してください。 [Y/n]: y

----------------------------------------------------------------------------
Installation folder

Bitnami Redmine Stack をインストールするフォルダを選択してください。

フォルダを選択 [/opt/redmine-3.4.6-0]:[Enter]
----------------------------------------------------------------------------
管理者アカウントの作成

Bitnami Redmine Stack の管理者アカウントを作成します。

表示用氏名 [User Name]: admin

Email アドレス [user@example.com]: admin@example.com

ログイン名 [user]: admin

パスワード :[YourRedminePassWord]
確認のためにパスワードをもう一度入れてください :[YourRedminePassWord]
----------------------------------------------------------------------------
データベースに保管する際の既定の言語

データベース設定の規定値として使用する言語を選択してください:

[1] Bosnian
[2] Bulgarian
[3] Catalan
[4] Czech
[5] Danish
[6] German
[7] English
[8] Spanish
[9] French
[10] Galician
[11] Hebrew
[12] Hungarian
[13] Italian
[14] 日本語
[15] 韓国語
[16] Lithuanian
[17] Dutch
[18] Norwegian
[19] Polish
[20] Portuguese
[21] Romanian
[22] Russian
[23] Slovak
[24] Slovenian
[25] Serbian
[26] Swedish
[27] Turkish
[28] Ukrainian
[29] Vietnamese
[30] Chinese
オプションを選択してください [14] :[Enter]

Do you want to configure mail support? [y/N]: n

----------------------------------------------------------------------------
お使いのコンピュータに Bitnami Redmine Stack をインストールする準備が整いました 。

続けますか? [Y/n]: y

----------------------------------------------------------------------------
しばらくお待ちください。 Bitnami Redmine Stack をお使いのコンピュータにインスト ール中です。

インストール中
0% ______________ 50% ______________ 100%
#########################################

----------------------------------------------------------------------------
セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました 。

Redmine アプリケーション起動 [Y/n]: y

情報: Bitnami Redmine Stack については、ブラウザで
http://127.0.0.1:80 にアクセスしてください。
続けるには [Enter] キーを押してください :[Enter]
さてhttp://localhost/に行ってみる。

Access Redmineへ。

無事成功。これでとりあえずいろいろ試してみることが可能。

2018年6月13日水曜日

Visual Studio Community 2017のインストール

最近よく思うのが、IT業界にいて開発ができないのは潜りだなと。

昔からちょっと弄ったり、趣味ベースでブラウザゲームを作ったり、仕事でもちょっとした便利ツール位は作ってはいたのだが、もうちょっと本格的に勉強してみたいと思っている。
インフラ+テスト寄りの業務が多いので正直直接使うことは少ないのだが、やっぱり何か思いついたときに、サクッと作れるというのはぜひ身に着けたいスキルだ。

いい時代になったものでVisual Studio Community版が個人だと無償でこちらから使える。
https://www.visualstudio.com/ja/thank-you-downloading-visual-studio/?sku=Community&rel=15

20年くらい前は5~6万とか出さないと手が出なかったものなのを思えば本当に良い時代になったもんだ。
その分、少しの経済力や古い経験程度のアドバンテージは簡単に誰でも学べる状況で、役に立たなくなっているのだろうが・・・。

今回はまずはインストールしてみたい。

インストーラをダウンロードして起動するとファイルのダウンロードが始まり、しばらくすると次のようにオプション選択画面が出てくる。

全部選択しようかと思ったが、全部インストールすると50GBを超えてSSDを圧迫するので、私はいくつかはしょったが、余裕のある方はとりあえず全部入れておいてもよいかと。

当然ながら、インストール開始するとこれらをすべてダウンロードしてくるのでとても時間がかかるので、一旦寝てもよいかと。。。

さて、終わったら再起動してGettingStartedを見てみよう。
https://www.visualstudio.com/vs/getting-started/

とりあえずインストールは完了。

2018年6月6日水曜日

Centos7にMoodle3.5を構築する

2021年03月追記:以下の手順では匿名様にコメント頂いている点と、こちら↓の記事で指摘されている問題があるようですので、ご参考にしてください。
https://moodle.org/mod/forum/discuss.php?d=376128

最近業務で使ったMoodleというLMS(Learning Management System)平たく言えばe-Learningのシステムの構築を今回は題材にしてみたい。

構築する環境としては、
https://arm-lab.blogspot.com/2018/06/centos-minimal.html
こちらの記事で作ったCentos 7 Minimalインストールの環境をベースにしていく。

※おおむね此方の方の手順(http://www.unix-power.net/networking/post-730)で行けたが、

  • 現在のMoodleの最新版(3.5)ではCentosのyumリポジトリで入れられるphpより新しいバージョンのphpを要求される点
  • Centos 7 ではSELinuxのおかげで「Fatal error: $CFG->dataroot is not writable, admin has to fix directory permissions! Exiting.」が出力される点
  • 次のエラーの解決
mysql_full_unicode_support#File_format
this test must passYour database uses Antelope as the file format. Full UTF-8 support in MySQL and MariaDB requires the Barracuda file format. Please switch to the Barracuda file format. See the documentation MySQL full unicode support for details.
Check
mysql_full_unicode_support#File_per_table
this test must passFor full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_file_per_table' to 'ON'. See the documentation for further details.
Check
mysql_full_unicode_support#Large_prefix
this test must passFor full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_large_prefix' to 'ON'. See the documentation for further details.
Check

等々細々いろいろ引っかかった点を、現在実現可能な手順に修正・追加・検証し、Centos7 + Moodle 3.5+で成功する手順を確立している。

maria DBのインストール

# sudo yum install -y mariadb mariadb-server

httpd(apache)のインストール

# sudo yum install -y httpd httpd-devel mod_ssl

※Moodle3.2では「Moodle 3.2 or later requires at least PHP 5.6.5」と要求されるがyumでインストールすると2018年6月現在「php-common-5.4.16-45.el7.x86_64」が入ってしまい、エラーを吐く経験があり今回使用するMoodle3.5でも当然phpのバージョンはyumリポジトリより新しいものが必要なので、epelリポジトリとRemiリポジトリを追加する。

epelリポジトリの追加

# sudo yum install -y epel-release

Remiリポジトリの追加

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

php 7.1と必要なモジュールのインストール

# sudo yum install -y --enablerepo=remi,remi-php71 php php-devel php-mysql php-mbstring php-gd php-pear httpd-devel php-mysqli php-intl php-soap php-xmlrpc php-xml php-ldap php-pecl-zip

追加リポジトリの無効化

phpのと関連モジュールのインストールが終わったら、viでepelリポジトリの設定ファイルを開き、
# vi /etc/yum.repos.d/epel.repo

epelのenableを0=Falseに変更。
[epel]
~中略~
enabled=0
~後略~
※これをしておかないとyum update時に公式のパッケージもepelで置き換わってしまう。

ちなみに
# cat /etc/yum.repos.d/remi.repo
で確認したところRemiリポジトリの方はインストール後のデフォルト値がenable=0なので特に弄らないでよさそう。

phpの設定

# vi /etc/php.ini

変更点は次の通り
memory_limit = 2048M ※環境及び環境次第
post_max_size = 2048M ※環境及び環境次第
default_charset = "UTF-8"
upload_max_filesize = 2048M ※環境及び運用次第
date.timezone = 'Asia/Tokyo';1660行目
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass

MariaDBの文字コード設定と有効化

# vi /etc/my.cnf

以下の内容に修正
[client]
default-character-set = utf8mb4
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[mysql]
default-character-set = utf8mb4
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

# sudo systemctl enable mariadb.service
# sudo systemctl start mariadb.service

# sudo mysql_secure_installation
Enter current password for root (enter for none):[そのままエンター]

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n][そのままエンター]
New password:[your password]
Re-enter new password:[your password]
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
~後略~
ここから先は全部エンターでOK。

Moodle用DB作成

# mysql -u root -p
Enter password:[YourRootPassWord]
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>create database moodle default character set utf8;
MariaDB [(none)]>grant all on moodle.* to moodle@localhost identified by '[YourDBPassWord]';
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>quit;

Moodleのダウンロード

# sudo yum install -y wget
# cd /var/www/html/
# wget https://download.moodle.org/stable35/moodle-latest-35.tgz
※このURLはその時点で公式(https://download.moodle.org/releases/latest/)からダウンロードできるものを拾ってくる。

ファイルの展開と権限設定

# tar xvzf moodle-latest-35.tgz
# rm -rf moodle-latest-35.tgz

# mkdir /var/www/moodledata
# chmod -R 755 /var/www/
# chown -R apache.apache /var/www/

config.phpの設定

# mv config-dist.php config.php
# vi config.php

以下を変更
$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dbuser    = 'moodle';   // your database username
$CFG->dbpass    = '[YourDBPassWord]';   // your database password
$CFG->wwwroot   = 'http://localhost/moodle';
$CFG->dataroot  = '/var/www/html/moodledata';

SE Linuxの無効化

# setenforce 0
# vi /etc/selinux/config

SELINUX=enforcing
の部分を、
SELINUX=permissive
に変更。

Apacheの有効化と起動

# sudo systemctl enable httpd.service
# sudo systemctl start httpd.service

Firewallの設定

# sudo firewall-cmd --add-port=80/tcp --permanent
# sudo firewall-cmd --reload

80番ポートのフォワーディング設定を追加

※今回VirtualBoxをネットワークNATで使用しているため。
 詳しくは↓の記事参照。

ブラウザから諸設定

ブラウザで http://localhost/moodle/admin/index.php へ接続。


Continueをクリック。

チェックステータスの確認

今回の手順では次のようになった。

Server checks
php_setting
opcache.enable
PHP setting should be changed.PHP opcode caching improves performance and lowers memory requirements, OPcache extension is recommended and fully supported.
Check
unicode
must be installed and enabledOK
database
mariadb (5.5.56-MariaDB)
version 5.5.31 is required and you are running 5.5.56OK
php
version 7.0.0 is required and you are running 7.1.18OK
pcreunicode
should be installed and enabled for best resultsOK
php_extension
iconv
must be installed and enabledOK
php_extension
mbstring
should be installed and enabled for best resultsOK
php_extension
curl
must be installed and enabledOK
php_extension
openssl
must be installed and enabledOK
php_extension
tokenizer
should be installed and enabled for best resultsOK
php_extension
xmlrpc
should be installed and enabled for best resultsOK
php_extension
soap
should be installed and enabled for best resultsOK
php_extension
ctype
must be installed and enabledOK
php_extension
zip
must be installed and enabledOK
php_extension
zlib
must be installed and enabledOK
php_extension
gd
must be installed and enabledOK
php_extension
simplexml
must be installed and enabledOK
php_extension
spl
must be installed and enabledOK
php_extension
pcre
must be installed and enabledOK
php_extension
dom
must be installed and enabledOK
php_extension
xml
must be installed and enabledOK
php_extension
xmlreader
must be installed and enabledOK
php_extension
intl
must be installed and enabledOK
php_extension
json
must be installed and enabledOK
php_extension
hash
must be installed and enabledOK
php_extension
fileinfo
must be installed and enabledOK
php_setting
memory_limit
recommended setting detectedOK
php_setting
file_uploads
recommended setting detectedOK
Other checks
site not https
if this test fails, it indicates a potential problemIt has been detected that your site is not secured using HTTPS. It is strongly recommended to migrate your site to HTTPS for increased security and improved integration with other systems.
Check
×Your server environment meets all minimum requirements.


もしバージョンの微妙な変化等で「this test must pass」が出る場合は修正の必要がある。


上記であれば動作には特に問題ないので、Continueをクリックするとインストールプロセスが開始するので、終わるまで待つ。

あとはウィザードに従えばとりあえずログイン可能な状態までは終わるはず。

無事完了。

後日バーチャルアプライアンスで配布予定の設定は次の通り。
OS:root/root
Moodle:admin/Mood1e@Adm1n

一度仕事でやったことがあった割には1人日くらいかかった。やっぱメモとか手順って大事。

2018年6月3日日曜日

Google Trendで見るRPAツールの注目度

昨年あたりから世間を騒がせているRPA界隈。Google Trendで注目度を見てみると、どうやらワールドワイドではUIPathが圧倒的。

日本ではWinactorが結構健闘していそうな感じが見えてくる。


2018年3月末あたりでいったんグラフが下がっているところをどう読むかだが、2017年度の残り予算で何を買うかを選定していた人と、2018年度予算に購入を盛り込み予定で調べていた人が一段落したと読んだとしても、その後も右肩上がりに伸びているので、まだまだ注目は続きそうに見えてくる。

現状だと無料で使えるWorkfusionというのがあるだけでOSSでRPAというのは、完成度のあるソフトは見当たらないが、このあたりがどうなってくるか個人的には期待している。
※SikuliXやSeleniumは一部RPAのように使えないこともないが、現状やはりやれることは限られている。

何か使えそうなツールが出てきたらぜひ試してみたい。

2018年6月2日土曜日

Centos + MATE Desktop + XRDPのリモート接続環境をVirtualBox上で構築する

前回MATE Desktopのインストールまで完了している
https://arm-lab.blogspot.com/2018/06/centos-minimalmate.html

この環境を前提としてRDPでリモート接続できる様にしたい。

なぜVNCではなくXRDPなのか?
→VNCクライアントソフトを追加インストールしなくてもホストOSに使っているWindowsマシンからRDPで接続できると便利な気がするから。

まずはxrdpサーバのインストール
# sudo yum --enablerepo=epel install -y xrdp

サービスの自動起動設定およびスタート
# sudo systemctl enable xrdp
# sudo systemctl start xrdp

接続するユーザのホームディレクトリに.Xclientsファイルを作成し権限を変更。
# echo "mate-session" > ~/.Xclients
# chmod a+x ~/.Xclients

FirewallのRDP用ポートを開く。
# sudo firewall-cmd --add-port=3389/tcp --permanent
# sudo firewall-cmd --reload


ここからはホストOS側で作業。


VirtualBoxのネットワーク設定でNATのポートフォワーディングを追加。
localhostの3389(RDPのデフォルトポート)をゲストOSの3389へ。

※当然ながらホストOS側でRDPサーバを動かしている場合はホストOS側のポートは別のポートにする。

ホストOS(Windows)からRDPクライアントを起動しlocalhostに接続してみる。

成功。

ちょっと嵌るかな?と思っていたが意外とすんなりできてよかった。
これでVirtualBox上のゲストOSのGUIが使いたいときも、融通の利かないVirtualBoxのウィンドウではなくRDPを使えるので、ホスト←→ゲスト間のコピペや画面サイズ等、融通の利く快適な作業ができるはず。


Centos Minimalインストールの状態から軽量デスクトップのMATEを導入

前回Centos Minimalの仮想マシンを作った。
https://arm-lab.blogspot.com/2018/06/centos-minimal.html

最近のLinuxでは結構GUIも使いたいケースが多いので今回は最低限のソフトとデスクトップのGUI環境を追加してみたい。


まずはepelリポジトリの追加。
# sudo yum install -y epel-release.noarch

viでepelリポジトリの設定ファイルを開き、
# vi /etc/yum.repos.d/epel.repo

epelのenableを0=Falseに変更。
[epel]
~中略~
enabled=0
~後略~
※これをしておかないとyum update時に公式のパッケージもepelで置き換わってしまうらしい。


yum.confにデフォルトと必須パッケージをインストールする設定が無ければ追加。

チェック
# cat /etc/yum.conf | grep echo group_package_types
追加
# sudo sh -c 'echo group_package_types=default,mandatory >> /etc/yum.conf'


X Window systemのグループインストール
# sudo yum --enablerepo=epel groupinstall -y "X Window system"


MATEをグループインストール
# sudo yum --enablerepo=epel groupinstall -y mate-desktop


ランレベル5にしてGUI環境へ
# sudo systemctl set-default graphical.target
# reboot


これで完了!・・・と思ったらGUIの日本語が化けているので、
# sudo yum install -y vlgothic-*
# sudo yum install -y ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
# reboot

今度こそ。

ログインもしてみる。

問題なさそうなので、この状態のマシンをバーチャルアプライアンスでエクスポートしておいて、今回は終了にする。

DockerをWindows10で使ってみる

VirtualBoxもよいのだが、VM=メモリ上に仮想でマシンを展開するため、やっぱりちょっと重いというケースがある。
また、OSのレイヤからイメージ化されるのでファイルもそれなりに大きい。

そこで、コンテナを使える環境も整えておきたい。

VirtualBoxはインストール済みでBiosの仮想化支援機能も有効化済みとしてやってみたい。

さてDockerをWindowsで使うには2018年5月現在、

  • Docker for Windows
  • Docker tool box

の二つの選択肢がある。

ちょっと事前に調べてみたところ、Docker for WindowsはWindows10のProfessional以上で使用できるマイクロソフトのハイパーバイザ、Hyper-Vが必要で、VirtualBoxとHyper-Vの共存はできないらしい。

とくにVirtualBoxでないといけない理由があるわけではないので、普段使いのハイパーバイザをHyper-Vに移行してもよいのだが、自宅のPCがHome Editionであることに気づく。

基本的にはDocker for Windowsが最新版なのでそちらを使いたいのでストアでWindows10をProfessionalにアップグレードすることも考えたが、VirtualBoxとDocker tool boxであれば、共存できそうなのでその路線でやってみようと思う。

Hyper-Vは会社のパソコンで遊んで使ってみよう。

まずは公式からDocker ToolboxのWindowsインストーラを落とす。
https://docs.docker.com/toolbox/overview/

VirtualBoxはDocker Toolboxのインストーラでも入れてくれるらしいが、今回はすでに入れているので、そのまま実行してみる。

Select Additional Tasksのところで「Install VirtualBox with NDIS5 driver[default NDIS6]」のチェックを入れたほうが良いとの記事もあるが、現在のバージョンではすべてデフォルトのままでも特に問題なさそうだった。

インストールが終わったら、Docker Quickstart Terminalを起動。
初回起動はisoイメージをダウンロードするので時間がかかるが、起動したら、公式にあるように、
docker run hello-world
と実行してみる。

成功。

ViatualBoxにはdefaultというDocker用のVMが作成されているはずだ。

さてhello worldだけでは実感が伴わないので、以前別環境で作ったDockerイメージを使ってsshログインできるインスタンスを起動してみたい。

イメージはこれ
https://hub.docker.com/r/armkn/centos7ssh/

Dockerfileはこれ
https://github.com/akrnmd/Centos7ssh_Dockerfile

コマンドはこれ
$ docker run --name centos7ssh001 -d -p 32772:22 armkn/centos7ssh

ひとまず起動確認まで完了。
$ docker kill [インスタンスID]
で終了。

今日はここまで。

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...