テレワークしてみた

 

ご時世に乗ってテレワークしてみたという話です。

 

これまでのテレワーク経験

PCとネット接続だけあれば成り立つ仕事ではあるものの、言われてみればあんまりテレワークしたことない気がする。今覚えている範囲だと、2011年3月の地震の時に約2週間ほど福岡のホテルでテレワークしたことがある。当時は駐在を終えて中国から日本に帰国した直後で、次の仕事との隙間期間だったので、1日1回の電話会議に出ればOKという感じで、あまり参考にならず。

 

あとは半日単位なら、新宿某所のコワーキングスペーススペースはちょいちょい使ってます。

 

テレワーク推奨中とはいうが

自社は絶賛テレワーク推奨中!とは言え、客先での仕事を抱えているので、完全テレワークとは行かず。諸々調整して、ひとまず今月は週1回のテレワークに調整することに。てか、自社は元々毎月最大8日間のテレワークOKだったのね…当面はこの上限を撤廃するとのこと。

 

ホームオフィス環境

ホームオフィスと言っても、書斎の机で会社のマシンを開くだけで特別なモノはなし。机の上に20インチのテレビがあるものの、今はMAC miniのモニタとして使っており、そもそもHDMIケーブルが足りないので外付けモニタとして使うのは断念…正直会社の方が快適。

 

連絡手段

電話、Slack、Microsoft Teamsとか色々ツールがあるものの、結局メールでの連絡に終始してしまった。たまたま今日はミーティングがない日だったのもあるかも。会議があれば、Teamsでつなぐことになったんだろうけど…

 

1日の仕事っぷり

通勤時間がゼロなこともあり、朝8時過ぎには仕事開始。午前中は、前から時間がある時に作ろうと思っていた技術資料を一気に作り上げて公開するところまで。邪魔が入らないから捗る捗る。資料を纏めながら、メールでの問い合わせを打ち返したり。普段現地でログインしているシステムにも、今の時代はRemote Desktopがあるので、全く支障なし。

 

午後は、少しだけペースダウンしたものの、午前に出したものの反響を確認したり。ただ、姿が見えない分、無意識に存在アピールをしてしまうようで、資料を公開したり、自分が出すメールの件数は明らかに増えました。

 

結論

仕事が捗るのは良いけど、これが毎日続くのはストレスになるなぁというのが正直なところ。週一回が良いところかな。

 

 

 

 

 

 

Dockerにハマった話

再び図らずもこの記事の続編です。
deutschina.hatenablog.com

無邪気さは悪なのか

Dockerに引っ越したSAPを触っていたところ、とある処理でポート50000のエラーが発生。そういえば、コンテナをrunした時のパラメータでポート番号50000を指定していないのが原因かなと思って、それじゃ1回止めてパラメータを追加して再起動すれば良いのかなと思い無邪気に、こんなコマンドを打ってしまったのです。

$ docker rm nwabap752
nwabap752

はいはい。これでパラメータ追加してもう1回runすれば良いはず。

$ docker run -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -p 50000:50000 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash

うん、いい感じ。これでSAPを起動すればいいのねと。

# su npladm
su : user npladm does not exit

え?ちょ、ちょ待てよ。

# startsap ALL
Command startsap not found

こっちもダメじゃん。何かやらかした模様。。。

Dockerのこと全く分かってなかった

Dockerについて分かったつもりだったんだけど、実は全く分かってなかったのね。
stopしただけではrunできないので、無邪気にrmしたけど、このstackoverflowの記事を見る限り、ディスクイメージが廃棄されるとのこと。

stackoverflow.com

日本語だと、こちらの記事が分かりやすい。
enakai00.hatenablog.com

SAPはディスクイメージの階層に入れているので、rmによってきれいさっぱり消えちゃいました。ということですな。これは、泣く泣く再インストールするしかないんだけど、前回触れたとおり、インストールで結構な確率でフリーズしてしまうという問題を抱えており、結局半日仕事に。。。

それでも、エラーは解消してすっきり。

Kubernetesで実践するクラウドネイティブDevOps

Kubernetesで実践するクラウドネイティブDevOps

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

怒られてDockerに引っ越した話 (SAP NW7.52 Dev. EditionをDockerにインストール)

図らずも、この記事の続きです。
deutschina.hatenablog.com

MacでSAPを使う環境を整えた数日後、とあるメールが届きました。簡単に言うと「きみのLaptopの中に、VirtualBox入っているみたいだけど、それうちの会社的にはダメだから」みたいな内容。Macで無料でやるにはVirtualBox一択なのに、これは参ったなと思ったものの、社畜なので本格的に怒られる前に自主規制することにしました。

対策を1分ほど考えたところ、Dockerを試してみることに。

先人の知恵を拝借

VirtualBoxのような仮想環境とDockerの違いみたいな話は、いろんなところで紹介されているのを斜め読み。今回やりたいのは、DockerにSAP Netweaver 7.52 Developer Editionをインストールすることなので、それに特化した記事を探してみる。英語だけでなく、日本語でもブログの記事を見つけたものの、今回は本家SAPのこの記事をベースにすることに。

Installing SAP NW ABAP into Docker | SAP Blogs

シリーズ記事になっていて、どうせならSAP Cloud ConnectorもDockerで入れちゃいなよということで、CCも入れてしまいました。自分のようなオンプレおじさんもクラウド対応待ったなしでございます。

いざ導入

新しいものを探したと言いつつ、上のブログの記事は2018年5月。その間にお試しNWも7.52 SP04と上がっていたりするので、そのままではうまく行かない状況に遭遇するのは、すでに織り込み済み。

幸いなことに、Githubの方は半年ほど前まで更新されていたので、主にこちらを見ながら作業します。
github.com

事前準備

Docker for Desktop

もちろん、Dockerを使うと言っている以上は、Dockerは必須だよねということで、Docker Desktop for Macはインストール済み。
www.docker.com

SAP Netweaver 7.52 SP04 Developer Edition

Dockerで環境作った後にSAPのインストールをするので、そのファイルはダウンロードしておいてねとのこと。自分の場合は、VirtualBoxに入れるときにダウンロードしたファイルたちが、まだDownloadsにいたので再利用。
developers.sap.com

Homebrewとunrar

SAP NWのダウンロードファイルは解凍(←古い言い方w)しておいてねということでunrarが必要。そのunrarをインストールするためにHomebrewが必要。
brew.sh
Homebrewのトップページ書いてあるコマンドをそのまま貼り付けて実行したら、続いてunrarのインストール。

$ brew install unrar

DockerのResources設定

SAP NWはDockerで扱うにしてはモノが大きいので、PreferenceのResource設定で、メモリを6GB、ストレージを100GB程度にしておく
f:id:deutschina:20200216115751p:plain

vm.max_map_countを1000000ぐらいに大きくしておいてねというのもあるが、Docker Desktopの場合のやり方は少し違うようなので後述。

導入開始

git cloneとSAP NWファイルの展開

ここからは、Githubに説明されている手順に沿って進めみた。クローンを置きたい場所に移動してからgit cloneする。

cd workspace
git clone https://github.com/nzamani/sap-nw-abap-trial-docker.git
cd sap-nw-abap-trial-docker

ダウンロードしてきたSAP NW 7.52 Developer editionのファイルを展開する。SP04ではファイル名が少し変わっているので注意。

$ mkdir sapdownloads
$ unrar x /Downloads/TD752SP04part01.rar ./sapdownloads

Dockerのビルド

git cloneしてきたファイルの中に、Dockerfileがいるので、そのままビルドが開始できる。

docker build -t nwabap:7.52 .

約15GBほどのファイルが転送されてビルドは完了。この記事では取り上げないけど、Dockerfileの中身を見るとビルドにあたってどんな処理が流れるかが見えるので興味深い。DockerhubでpullしたあとBuildする理由も頭の中で整理された感じ。

ビルドしたら、runする。(もし、これを読みながら進めている人がいたら、このコマンド実行はちょっと待って!)

docker run -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -p 50000:50000 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash

VirtualBoxでポートの設定したときと同じ番号が登場しているので、やっていることはイメージしやすいね。ここから、./install.shと行きたいところだけど、結構トラップがあった。

2020/2/22追記
触っていて、ポート番号50000のエラーが出ているのでパラメータに追加。

トラップたち

vm.max_map_count問題

このまますんなり行ければ、良かったんだけど、ここの設定で結構詰まった。
f:id:deutschina:20200216122552p:plain
ここに書いてある方法を試したけど、両方ダメだった。まずscreenを使う方は、日本語JISキーボードだと文字化けして使い物にならず(USキーボードではOK)。もう1つのdocker-machineは、入れてみたけどactiveなmachineがないよと言われて使えず。自分の場合、最近Dockerを入れたので今のDockerのバージョンでは、docker-machineに対応していないのではないかと想像。

その後、いろいろ探してみた結論としては、これで行けました。

$ docker run --privileged -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash

まずは、--privilegedのオプション付きでrunをしてから、こんな感じで反映された。

# sysctl -w vm.max_map_count=1000000
sysctl vm.max_map_count=1000000

あとは、Githubで説明されているように、インストールを開始すればOK。

# /usr/sbin/uuidd
# ./install.exp

最後の敵は、、、

いよいよSAPのインストールが始まる!という最初のところで、Agreementに同意を求められるんだけど、そこでyesと入力した直後に処理が固まるという現象が発生。

f:id:deutschina:20200216105627p:plain

ブログの方にこんなことが書いてある。

Hint: According to the documentation this installation will take about 20-30 minutes, for me it took only 10-12 minutes. However, in 1 out of 10 cases the installation seems to hang for some reason which I can’t explain (I could reproduce that without Docker as well). In such cases you can simply kill your terminal session which will also stop the container. Then simply remove the docker container with docker rm nwabap751 before you execute the same docker run from above again and continue from there…

10回に1回ぐらいインストールがhangすることがあるけど、そんなときは1回docker containerをremoveしてやり直してみてねとさらっと書いてある。

f:id:deutschina:20200216105617p:plain

ちなみに、これが自分で試した時のrmの記録。10回に1回フリーズするんじゃなくて、フリーズしないのが10回に1回の間違いなのでは?いずれにしても、これは根気よく繰り返すしかないみたい。

この関門をクリアすると、ようやくSAPのインストールが始まり、特に問題がなければ無事にdockerへのお引っ越し完了。それにしても、一番時間かかったのが最後の「運試し」だったのは間違いない。

まとめと今後

ようやくDockerへの引っ越しが完了したので、オンプレおじさんとしては、もう少しクラウドにも手を出してきたいと思います。

ディクテーションチャレンジ

自分の中でのコンプレックスの話です。英語でも中国語でもそうなんだけど、自分より上手な人を見ると、なんとも羨ましい。

 

どちらの言語も仕事(英語)、サバイバル(中国語)で困らないレベルには何とか辿り着いたものの、そこからの上積みがなくて、彷徨える中級者から抜けられない。

 

何となく雰囲気で分かるからと甘えないで、「もう一段上がるには、きちんと聞き取らないと行けないな」という両方に共通の問題があるような気がしてきて、とりあえず英語でディクテーションを試してみることにしました。

 

お題目に選んだのはこの本。

The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data (English Edition)

The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data (English Edition)

  • 作者:Gene Kim
  • 出版社/メーカー: IT Revolution Press
  • 発売日: 2019/11/26
  • メディア: Kindle
 

この本を選んだ理由は、内容的に自分の業界に近いので、内容が取っ付きやすいのと、前作のThe Phoenix Projectが面白かったから。

 

やり方としては、一文ごとこれ以上分からないというぐらい繰り返し聞いて、答え合わせをするというもの。KINDLEとAUDIBLEの2大ツールのおかげで、何でも教材にできるのは良い時代になったよね。

 

f:id:deutschina:20200210172717p:image

 

とか言いながら、悲しいかな1ページ進むのに30分以上かかって、しかも残酷なほど聞き取れていない部分が可視化される。あまり精神衛生上良くないので、1日1時間やるのが限界。


成果が出るのはだいぶ先かもしれないけど、ひとまず前に進むのみでございます。

 

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

 
The DevOps 逆転だ!

The DevOps 逆転だ!

 
英語耳[改訂・新CD版] 発音ができるとリスニングができる

英語耳[改訂・新CD版] 発音ができるとリスニングができる

 
[音声DL付]話す英語 実戦力徹底トレーニング

[音声DL付]話す英語 実戦力徹底トレーニング

 

 

 

MacでSAPを使う環境を整える話 2

この記事の続きです。
deutschina.hatenablog.com
SAP GUIを入れるところまでやったものの、SAP GUI for JAVAABAP EditorはWindows版と比べて見劣りするので、やっぱりEclipseを使いましょうという話と、関連して最近トラブったのでその話あたりを。

Eclipseを入れる

Eclipseのインストール

やり方はこのサイトに説明されているので、それに従えば良い。
tools.hana.ondemand.com
ひとまずABAPをやる想定で、Eclipse 2019-12をダウンロードして、指定されたサイトから関連するプラグインをインストールする。とりあえずSAP関連のものが5種類ほどあるので、とりあえず全部入れてみる。入れたら、促されるままEclipseを再起動すればOK。

接続テストをする

とりあえずABAPのプロジェクトを新しく作ってみる。その際にSAPシステムへの接続情報を入力して、システム接続できたら、念のためSAP GUIに接続するためのボタンを押して、こんな感じで表示されればJava FXの設定も含めてOKだったということになる。

f:id:deutschina:20200208212747p:plain

トラブル発生

ホントに書きたかったのはこのあたりからかも。

いきなりの悲劇

ある朝、アプリの更新通知が降ってきて、何の気なしにYesを推したところから悲劇が。。。更新通知をYesしたことすら忘れかけた頃、Eclipseを立ち上げようとしたら、こんなポップアップが出てきて立ち上がらず。
f:id:deutschina:20200208102010p:plain
※実際にはスクリーンショットを撮ってないのでこれは拾いものです

え?なんで?と思ってググり始めたところ、eclipse.iniという設定ファイルで起動するJVMを指定する-vmというパラメータがあって、この設定を直せば動くようになるらしいということが判明。何の前触れもなくいきなり動かなくなったという点についても、何かアプリをインストールしたときに環境変数が書き換わることがあるらしい。

いかにも、eclipse.iniならココを見なさいというサイトがあったので確認する。

https://wiki.eclipse.org/Eclipse.ini

自分の設定ファイルはどうなっているかを確認する手順は、こんな感じ。

  • Applicationsフォルダを開き、Eclipseのアイコンを右クリックして"Show package contents"を選択
  • 新しいFinderウィンドウが開いたら、Contents→Eclipseの中にあるeclipse.iniをエディタなどで開く

確か最初に開いた時には、-vmのセクション自体がなかったので、こんな感じで足せばいいんでしょ?と思い、

-vm
/Library/Java/JavaVirtualMachine/sapmachine-jdk-11.0.6.jdk/Contents/Home

このブロックを追加して保存してEclipseを再起動しても状況が変わらず。

悪いのはこの子なのか?

その後、ファイルの設定を少しずつ弄っては起動せずを繰り返したところで、とある事が頭をよぎりました。

先日設定した別のマシンでは問題なく動いていたので、それと設定を比べれば良いのでは?

別のマシンではEclipseが問題なく立ち上がることを確認した上で、設定を確認してみたところ、JavaVirtualMachinesのフォルダに入っている顔ぶれが違っていました。具体的にはsapmachine-jdk.11.0.6の代わりにjdk.11.0.6が入っています。

ちなみにsapmachineというのは、Open JDKの1つで名前の通りSAP supportedなもの。SAP GUI for JAVAを入れれば同時に入ってくる(ハズ)。
SapMachine | An OpenJDK release maintained and supported by SAP

まさかと思い、事故が起きた環境でJavaVirtualMachinesの中身を見てみると、、、
f:id:deutschina:20200208095937p:plain
jdk.11.0.6はリカバリのために後で追加したもの

Eclipseが起動しなくなった日の9:24過ぎに、sapmachine-jdk.11.0.6が追加されていることが分かりました。この子が悪さしているのは間違いなさそうです。そこで、現在動いているマシンと同じ条件にするために、jdk.11.0.6を新たにインストールして、環境設定ファイルもこんな感じで書き換えてみました。

f:id:deutschina:20200208095948p:plain

※2020/02/10追記
下の赤枠の内容は直前のと重複しているので、本来不要なはず。

これでEclipseを再起動してみたところ、、、苦節2日(ずっとこれの対応をしていたわけじゃないけど)、ようやく元通りに動かせるようになりました。

こんなことも言いたくなる訳で。

これで、ひとまず環境は整ったので、いろいろ試していこうと思います。