Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

macOS から Raspberry Pi に画面共有したい

結論

Raspberry Pi 側 (LAN 内の IP アドレス = 192.168.202.118)

  • VNC について確認しましょう。
$ sudo systemctl list-unit-files | grep vnc
vncserver-virtuald.service             disabled
vncserver-x11-serviced.service         disabled


---> vncserver-x11-serviced があることが確認出来ました。
sudo systemctl start vncserver-x11-serviced.service
sudo systemctl enable vncserver-x11-serviced.service
  • 確認をします。
$ sudo systemctl status vncserver-x11-serviced.service
● vncserver-x11-serviced.service - VNC Server in Service Mode daemon
   Loaded: loaded (/usr/lib/systemd/system/vncserver-x11-serviced.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-02-18 19:30:26 JST; 1h 49min ago
 Main PID: 2493 (vncserver-x11-s)
    Tasks: 6 (limit: 2200)
   Memory: 27.5M
   CGroup: /system.slice/vncserver-x11-serviced.service
           ├─2493 /usr/bin/vncserver-x11-serviced -fg
           ├─2497 /usr/bin/vncserver-x11-core -service
           ├─2506 /usr/bin/vncagent service 13
           ├─2510 /usr/bin/vncserverui service 17
           └─2518 /usr/bin/vncserverui -statusicon 5

Raspberry Pi 側 の設定は以上です。

macOS

  • RealVNC for macOS をダウンロードし、インストールします。

https://www.realvnc.com/en/connect/download/viewer/

f:id:nari_kyu:20200222110503p:plain

f:id:nari_kyu:20200222110517p:plain

  • Applications にコピーしましょう。

f:id:nari_kyu:20200222110533p:plain

  • その後、Launchpad から VNC Viewer を起動し、Raspberry Pi の IP アドレス (= 192.168.202.118) を入れ、Enter を押します。

f:id:nari_kyu:20200222110549p:plain

  • 初回は下記のような確認画面が出ますので、確認して続けましょう。

f:id:nari_kyu:20200222110603p:plain

  • Raspberry Pi にログイン出来るユーザ名とパスワードをいれます。
    • この時、VNC 用のユーザの新規作成は必要ありません。

f:id:nari_kyu:20200222110618p:plain

  • 無事、VNC クライアントを用いて macOS から Raspberry Pi にアクセスすることが出来るようになりました。

f:id:nari_kyu:20200222110633p:plain

まとめ

Raspberry Pi 上の OS に対して、VNC する機会はあまり無いかと思いますが、いざ必要という際に設定するのはめんどうなので備忘として残しておきます :)

nodered-dockercompose を Node-RED v1.0.3 対応させました

nodered-dockercompose ってそもそも何 ??

  • 自前の Repository です。
    • Docker Compose を用いて、 Node-RED (後述) をマシン上に構築することが出来ます。

github.com

  • 今回は、Node-RED の v1 がリリースしたので、上記の Repository もアップデートしました。
    • (正確には v1.0.3 にアップデートしました。)

Node-RED とは??

公式サイト

nodered.org

どんなものか

  • 公式ドキュメントから抜粋します。
https://nodered.org/about/


Node-RED is a flow-based programming tool, originally developed by IBM’s Emerging Technology Services team and now a part of the JS Foundation.
===============================
Node-RED はフローベースドプログラミング (flow-based programming) ツールであり、元は IBM Emerging Technology Services チームによって開発され、JS Foundation 配下のプロジェクトを経て、2019 年 3 月よ りNode.js Foundation と JS Foundation が合併して設立された OpenJS Foundation にホストされています。

コミュニティなど

  • Node-RED日本ユーザ会

nodered.jp

  • Connpass

node-red.connpass.com

その他特徴

nodered-dockercompose を使った Node-RED の使用方法

  • clone します。
cd ${Your WorkDirectory}
git https://github.com/iganari/nodered-dockercompose.git
cd nodered-dockercompose
  • docker-compose コマンドで起動します。
docker-compose up -d
  • 状態の確認コマンド
docker-compose ps
### 例

$ docker-compose ps
         Name                      Command                      State                   Ports
------------------------------------------------------------------------------------------------------
nodered-docker-compose   npm start -- --userDir /data   Up (health: starting)   0.0.0.0:1880->1880/tcp

f:id:nari_kyu:20200207084133p:plain

  • 停止も docker-compose コマンドで行います。
docker-compose stop

今回のアップデートで修正した点などなど

  • 自分で Dockerfile の中でいろいろインストールしていたところを、公式の Repository をものを使用することにしました。
    • メンテナンス性を考慮したため。
  • docker-compose.yml の書き方も公式の Repository に沿って修正しました。

まとめ

Node-RED 自体の構築はシンプルなのでこれくらいで。

あとは、「Node-RED を用いて、何を実現するか!?」 がポイントになります。

とりあえず、LINE BotTwitter に繋げて遊んでみたいと思います!!

Have fun! :)

Multi Cli を作りました

成果物

github.com

どんなものか

  • (今の所) AWS、Azure、GCPCLI をコンテナ上で使えるようにします。
    • これにより、ホストマシンの環境を必要以上に汚すことはありません。
  • Docker Compose を用いることで、常時起動をより簡易にしています。
    • docker コマンドの -d でも出来ますが、管理の工数が増えるため、Docker Compose を使用しました。
  • さくっと CLI を使いたい時に重宝します(多分)
    • CLI を使いたいけど、Cloud Shell を起動するのもめんどいし…な時など!!(あるのか??)

使用方法

  • Repository を Clone し、docker-compose コマンドで実行します。
cd {Your work directory}
git clone https://github.com/iganari/multi-cli.git
cd multi-cli
docker-compose up -d
### 例

$ docker-compose up -d
Creating multi-cli-azure  ... done
Creating multi-cli-aws    ... done
Creating multi-cli-gcloud ... done
  • ちゃんと起動しているか、確認します。
docker-compose ps
$ docker-compose ps
      Name             Command       State   Ports
--------------------------------------------------
multi-cli-aws      /bin/sh           Up
multi-cli-azure    /bin/sh -c bash   Up
multi-cli-gcloud   /bin/sh           Up 
  • Docker Compose にて起動しているコンテナにログインします。
docker-compose exec aws    /bin/ash
docker-compose exec azure  /bin/ash
docker-compose exec gcloud /bin/ash
### 例(Azure のコンテナにて)

$ docker-compose exec azure /bin/ash
/ # 
/ # az version
This command is in preview. It may be changed/removed in a future release.
{
  "azure-cli": "2.0.80",
  "azure-cli-command-modules-nspkg": "2.0.3",
  "azure-cli-core": "2.0.80",
  "azure-cli-nspkg": "3.0.4",
  "azure-cli-telemetry": "1.0.4",
  "extensions": {}
}
/ #

停止する場合

  • 起動しっぱなしで特に問題は無いかと思いますが、停止したい場合は以下のコマンドで可能です。
docker-compose stop

エイリアスを貼っておく

この Docker Compose を起動していて、いざ使いたい時にこの Repository のディレクトリに行かないといけないのは面倒ですよね :(

なので、自分の環境にエイリアスを貼っておきます。以下に Bash の場合の例を貼っておきます。

  • ~/.bashrc に以下を追記します。
alias dg='cd ${Your Repository's PATH}/multi-cli && docker-compose exec gcloud /bin/bash && cd -' 
alias dz='cd ${Your Repository's PATH}/multi-cli && docker-compose exec azure /bin/bash  && cd -'
alias dw='cd ${Your Repository's PATH}/multi-cli && docker-compose exec azure /bin/bash  && cd -'
  • ~/.bashrc の変更を読み込みます。
source ~/.bashrc

これで短いコマンドで実行が可能になりました :)

まとめ

Have fun!! :)

SRE NEXT に当日メンバーとして参加してきました

2020/01/25 に SRE NEXT というカンファレンスがあり、その当日メンバーとして参加してきました。

感想などを簡潔に書き残しておこうと思います。

なぜ参加したのか

インフラエンジニアとして Infrastructure as Code や DevOps などの文面で語られるような、技術・思想が好きなのと、去年の 7 月から新たに SRE チームに所属することとなり、SRE Lounge に何回か参加していました。

その時にたまたま参加した回で SRE NEXT の存在を知り、後日当日メンバーの募集があったのですぐに手を上げました

当日の動きなど

わたしの担当は room B に張り付いて、進行などのお手伝いをする謂わば雑用さんでした

最初こそばたばたしたものの、すぐに慣れてきて当日メンバーと会話も出来、比較的わいわいやれたかと思います。

というか、たまにふらっと持ち場を離れて周遊していたり、(勝手に)イベントの様子をツイートしてました。

そこらへんは、 room B の統括をされていた @mtsuka さんの寛大な人柄なとこもあったかと思います。

あと、ヨガが良かったですw

参加してどうだったか

アメンバーのみなさんはそれこそ何ヶ月も前から準備をされていたかと思うのですが、当日メンバーも任意参加の前日準備の時間がありました。

私はというと、違う勉強会に行く用事があって前日準備は参加することが出来ず、結果的に当日初参加となってしまいました。

しかし当日初参加のわたしでも特に問題無く動くことが出来るくらい、事前準備の質が高かったかと思います。

また、一般の参加者からの評価も良かったようで、質の高い発表内容やカンファレンスの運営の裏を見る経験が出来てよい経験でした。

他と違う点

今回びっくりした点を一つあげると、メンバーの「参加しました」ブログがすごく多いなと感じました。

代表やコアメンバーの方々や、当日メンバーの方々もかなりの確率で書かれている気がします。

普段、SRE として働かれているので、ポストモーテム…は障害報告書にまつわる話ですが、ちゃんと振り返りをする文化・習慣が各々しっかりついているからでしょうか。

まとめ

SRE NEXT は一般参加だったとしてもとても質の高いカンファレンスだったと思いますが、当日メンバーとして参加出来てより良い経験になりました。

ただ、一部のセッションがまだ見れてないので公開されている資料をゆっくり見ていこうと思います。

今後も SRE Lounge に何かしら貢献出来ればいいなと思います。

参考URL