超いまさらcron設定を行ってみました

f:id:ueponx:20211005000919p:plain

技術の仕事をしているわけでもないため、普段全くcron処理などをしない人生なのですが、とあるキッカケがありsyslogcronを使うことになりました。基本的にはcronのログ設定なんてデフォルトでされてんだろうと思っていたのですが、違うみたいですね。cronの実験をしているのに全くログファイルが書き込まれず、悩んでいました。いままでの知識はなんだったのか…。

ということで、cron処理を行ったときのログファイルへの書き込み設定をまとめてみます。今後、使うことがあるのかわかりませんが。

最近ではcronではなくsystemdを使った方がいいようなことも目にするんですが実際のところはどうなんでしょうか。実務やっている方に聞いてみたいです。

【参考】

qiita.com

続きを読む

Raspberry PiにMicrosoft Teamsをインストールする

以前、Raspberry PiZoomをインストールしてみたという内容のエントリを書いていました。

参考 uepon.hatenadiary.com

uepon.hatenadiary.com

負荷は結構あるもののそこそこの動作をしてくれるみたいなのですが、x86エミュレータなどを使用しているような状況での動作なので、 一応使用はできるなというレベルなのかなと。

実は会社ではMicrosoft Teamsを使用しています。基本的には私用では使うことはほぼないのですが、たまにALGYAN(あるじゃん) のイベントで使うことがあるくらいでしょうか。

Zoomとの比較ということも兼ねて、Microsoft Teamsもインストールをしてみようと思います。

Microsoft Teamsをインストールする

Microsoft Teamsのインストールに関してはZoomに比べると比較的容易です。ただし、aptコマンドでのインストールではなくsnapによるインストールになるのが少し違います。

snap(Snappy)Wikipediaによると以下のようなパッケージマネージャのようです。

Snappyとはカノニカルが設計・開発したソフトウェアデプロイメントシステムかつパッケージ管理システムであり、元々はUbuntu Phoneオペレーティングシステム用に設計・開発された。Snappyのパッケージは 'Snap' と呼ばれ、Snapを使うツールは 'Snapd' と呼ばれる。Snapは様々なLinuxディストリビューションで動作するので、ディストリビューションの上流のソフトウェアデプロイメントに依存しない。Snappyのシステムは携帯電話、クラウド、IoTやデスクトップパソコン向けに設計されている。

aptに登録されていないプロプライエタリソフトウェアなソフトウエアがインストールできるのかな?という感じでしょうか。

以下のコマンドを実行していきます。snapdaptコマンドでインストールしたあと再起動していますが、snapdの起動をsystemctlなどで実行できれば、不要かもしれません。snapdのインストールが終わったら、Microsoft TeamsLinux版であるteams-for-linuxをインストールします。これで作業は終了です。

$ sudo apt update
$ sudo apt install snapd
$ sudo reboot
$ sudo snap install teams-for-linux

インストールが完了しても、Zoomなどのインストールとは異なりGUIメニューには登録されないので、必要があれば手作業で操作する必要があります。

実行

インストールが完了したら、実行してみます。コマンドラインからteams-for-linuxと実行すれば起動します。起動後に大量のエラーログが出力されますが、動作しますので無視して進めていきます。

Microsoft Teamsを実行する

$ teams-for-linux

大量のエラーメッセージ

f:id:ueponx:20210928001231p:plain

起動すると少し時間が必要ではありますが、Microsoftのサインダイアログが表示されるので、サインインします。(ユーザID/パスワード)

f:id:ueponx:20210926222333p:plain

ログインが終わってTeamsの組織選択が画面が表示されます。ここからは一般的な使い方になります。個人利用であればPersonalを選択することになります。会社用の組織も選択肢にでていたので、うまく動作しているようでした。

f:id:ueponx:20210926222341p:plain

組織選択が終わるとよく見かける画面になっています。

f:id:ueponx:20210926222345p:plain

かなり負荷のかかる作業を行っているようで、ボタンなどのクリック後もかなりもたつく印象ですが最低限の使用はできるようです。

RaspberryPiのGUIメニューへMicrosoft Teamsを追加

基本的な流れとしてはここまでで終了していますが、さすがにここまでだと使い勝手があまり良くないのでGUIのメニュー上にもMicrosoft Teamsを追加したいと思います。

まずは、メニューの【ラズベリーパイのアイコン】→【Preferences】→【Main Menu Editor】を選択します。

f:id:ueponx:20210927221538p:plain

すると、【Main Menu Editor】ダイアログが開きます。ここからメニューへ追加を行います。

f:id:ueponx:20210927221545p:plain

追加するカテゴリ(今回はInternet)に追加します。左側のカテゴリの【Internet】を選択し、右側の【New Item】ボタンをクリックします。

f:id:ueponx:20210927221552p:plain

開いたダイアログにデータを入力していきます。Commandのパラメータ部分には/snap/bin/teams_for_linuxを入力しましょう。

f:id:ueponx:20210927221558p:plain

あとはMicrosoft Teamsのロゴを設定して、【OK】ボタンをクリックします。

f:id:ueponx:20210927221603p:plain

無事にTeamsがメニューに追加されたので、【OK】ボタンをクリックします。

f:id:ueponx:20210927221609p:plain

実際にメニューにも追加されています。

f:id:ueponx:20210927221614p:plain

おわりに

Zoom以外のテレカンアプリも問題なく使えるような状況になってきました。本気でRaspberry Piで使用するのかという話になると少し(?)がつきまといますが、使えると知っていれば色々な事ができる可能性も広がります。

ちなみにUbuntuなどでも同様の作業でインストールができるようなのでそちらを使うほうが現実的かもしれません。

Node-REDでWebサーバを作ったときに、CSSなどの静的リソースファイルを使用するには?

Node-REDを使ってWebサーバを作ったときにCSSを別の静的ファイルにして保存したいこともあります。同じHTMLファイルにCSSを入れても同じことはできるのですが、内容の見通しがよくなるので別ファイルにする方がおすすめかなと思います。

例えば、以下のようにCSSファイル(sample.css)を指定するとなると、どこに配置することになるのでしょうか?

f:id:ueponx:20210927180758p:plain

ということで、今回は静的リソースを使用するための設定をメモっておきます。

今回はKatacode上のNode-REDを使用していますが、他の環境でもほぼ同じ設定を行うことになります。

www.katacoda.com

また使用しているフローは以下のものをベースにしています。

f:id:ueponx:20210927175507p:plain

[{"id":"8467c21d2545a7c7","type":"template","z":"7caeabc7e2fd0b0d","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<html>\n<head>\n<title>Sample Page</title>\n</head>\n<body>\n{{payload.stateName}}</br>\n{{payload.city}}</br>\n{{payload.street}}</br>\n</body>\n</html>","output":"str","x":300,"y":120,"wires":[["ca35503b3c8beeb4"]]},{"id":"25b6a7546553433d","type":"http in","z":"7caeabc7e2fd0b0d","name":"","url":"/api","method":"get","upload":false,"swaggerDoc":"","x":100,"y":60,"wires":[["3f1735bf6de77b35"]]},{"id":"ca35503b3c8beeb4","type":"http response","z":"7caeabc7e2fd0b0d","name":"","statusCode":"","headers":{},"x":490,"y":120,"wires":[]},{"id":"3f1735bf6de77b35","type":"http request","z":"7caeabc7e2fd0b0d","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"http://api.thni.net/jzip/X0401/JSON/{{{req.query.query1}}}/{{{req.query.query2}}}.js","tls":"","persist":false,"proxy":"","authType":"","credentials":{"user":"","password":""},"x":310,"y":60,"wires":[["8467c21d2545a7c7"]]}]

内部で以下のREST APIを使用しています。

project.iw3.org

そのまま動作させるとどうなる?

今回は以下のようなCSSファイルを準備しています。背景色を青っぽくするものになります。

f:id:ueponx:20210927180833p:plain

では、設定を何も行わずに上記のようにHTMLファイルに含めるとどうなるかをチェックしてみます。Chromeブラウザデベロッパーツールを開いてみると以下の様になっています。

エラーが発生

f:id:ueponx:20210815235418p:plain

読み込んだデータ

f:id:ueponx:20210815235421p:plain

うまく静的リソースを読み込めていないというよりもどこのパスにいるのかが不明なのでこのような状態になりますね。

設定を行う

そのような場合にはNode-REDをインストールしたパス/.node-redにあるsetting.jsファイルを編集することになります。以下の例では/rootでインストールを行っている場合の例になります。このファイルを編集します。

ファイルをスクロールして…

f:id:ueponx:20210815235431p:plain

作業を行う箇所はhttpStaticの項目になります。デフォルトではこの項目はコメント化されているので、コメントアウトして有効化します。これで、Node-REDをインストールしたパス/node-red-staticが静的リソースを格納するパスになります。

httpStaticの項目をコメントアウトする

f:id:ueponx:20210927173706p:plain

忘れずにNode-REDを再起動しておきましょう!

CSSなどの静的なリソースはここにコピーすることで使用可能になります。もし存在していない場合にはディレクトリを作成してください。

f:id:ueponx:20210815235442p:plain

作成したディレクトリにCSSファイルをコピーしておきます。そして実行すると以下の様になります。

エラーは解消

f:id:ueponx:20210815235453p:plain

背景色も無事に反映されました

f:id:ueponx:20210815235448p:plain

おわりに

Node-REDの静的なリソースを指定をおこなってみました。これでWebサーバーを仕立てたりする場合にもリソース指定を行えるようになり、静的な画像素材をいれること、 Javascriptなどが使用可能になります。かなりの自由度が増したのではないでしょうか。

参考

uepon.hatenadiary.com

uepon.hatenadiary.com

Windows10のDockerでRHEL8コンテナをインストールする

以前、CentOSがなくなり移行先をどうするかというようなことがネットでも話題になっていましたが、それに加えてRHELのライセンスも緩和されたということも同じように話題になっていました。自分はCentOSRHELも使用していませんが、今後のためにRedHat系のLinuxディストリビューションの状況も少しは見ておいたほうがいいかなと思いました。そこで、ライセンスが緩和されたRHELをWindows10のDocker環境に導入してみようかなと思います。Docker Desktopも有料化されるとか…この界隈も結構状況が変わってきましたね。 雑な説明になりますが、RHELは16台まで使用可能に緩和、Docker Desktopは個人利用は無償のままです。

【参考:「CentOS Linux」終了へ 開発者の動揺と救済の動き】 cloud.watch.impress.co.jp

【参考:開発者向けサブスクリプションサービス「Red Hat Developer」プログラムを改訂】 www.redhat.com

【参考:Docker Desktop有料化の影響】 qiita.com

DockerRHELのコンテナイメージをインストールするのはそんな難しくはないだろうなと思っていたのですが、あんまり情報がなくてびっくりしました。そういう使い方をしないということなのでしょうか?(ライセンスの問題?)

ネットで検索すると、RHELDockerをインストールしてコンテナ環境を構築するパターン、あるいはRedHat製のPodmanというDocker互換のアプリケーションでの導入するパターンといった情報はでてくるのですが、WindowsなどのDocker環境にRHELコンテナを導入する情報があまりありません。

そこで、RHELコンテナの導入に関する情報をまとめてみたいと思います。

続きを読む

WSL2の新機能WSLgを使ってX Window SystemのGUIアプリを動作させてみる

以前、‘‘‘WSL‘‘‘環境化でXのアプリケーションを実行してみました。

uepon.hatenadiary.com

当時はデフォルトではXアプリケーションの実行は‘‘‘WSL‘‘‘単体で対応していなかったため、 ‘‘‘X Window System‘‘‘のサーバになるアプリである‘‘‘VcXsrv Windows X Server‘‘‘をインストールしてGUI対応のアプリを実行していました。その時から状況も変わり ‘‘‘X Window System‘‘‘のサーバを別途インストールすることなく、‘‘‘WSL2‘‘‘のデフォルトで対応することができるようになったようです。 ‘‘‘WSL‘‘‘で‘‘‘Linux‘‘‘のGUIアプリを動かす仕組みは、‘‘‘「WSLg(Windows Subsystem for Linux GUI)」‘‘‘と呼ばれています。 WSL2を最新版にすれば、WSLgを使用することができます。※WSLgはWSL2でのみサポートされます。

今回はその‘‘‘WSLg‘‘‘を使用してGUIアプリを起動するかを確認してみようと思います。

続きを読む
/* -----codeの行番号----- */