Gitbookを使用する際のNode.jsのバージョンに注意(2020/11/9時点)
前の記事の続き。
scoopを無事再インストールして再度nodejs,gitbook-cliをインストールしようとしてもやはりエラーが出る。最新の15,およびLTSの14でもだめ。 どうもこれは問題になっているらしく、10まで戻らないとダメ見たい...
nvmでバージョンを10.23.0に指定してインストールしたところ、正常に動作することを確認できた
Windows 10のscoopでnodejsを運用する際にはまったこと
Windows10でscoopでのパッケージ管理にはまり、node.jsもscoop経由でインストールして利用した際にはまったこと。
Gitbookを実行しようとしたところ、なぜかうまくいかない。これがうまくいかない理由はscoopとは関係なかったので別記事で。 いったん環境を切りにしようと思い、nodejsをアンインストールしようとするとこける
scoop uninstall nodejs
scoop自体をアンインストールしようとしても同様。
scoop uninstall scoop
エラーメッセージにて階層のかなり深いファイルにアクセスできないと表示されるので、エクスプローラーでファイルの存在は確認できる。が、ファイルを開こうとするとパスが長すぎるため開けない旨のエラーが出る。
どうも、nodeがネストされたフォルダにキャッシュ等を置こうとする仕様のために発生するようだ。
Windows10では既定で260文字となっている
さしあたっては以下の記事にあるように、ネットワークドライブとして参照することで一時的にこの制限を回避できる office-qa.com
削除後、以下の記事にあるComputer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled
レジストリを1に変更して再起動後、症状は発生しなくなった
監視結果通知メールの集約にGoogle Spreadsheet
各種バッチ処理の実行結果をメール通知するようにしています。
各サーバに直接見に行くよりはメールのほうが確認は楽なのですが、それでもメール件数が多いと大変で、リストを元に人手で確認すると漏れる可能性があることが心配でした。
そこで、メールに識別しやすいヘッダを懸命につけてGmailに飛ばし、Google Apps Scriptで識別子をもとに取得してGoogle Spreadsheetに結果を表示するようにしたところ、一気に楽になりました。
Spreadsheetの一覧をチェックして結果を通知するGoogle Apps Scriptも別途作成し、通知で何らかのエラーがあればSpreadsheetを見に行くようにしています。
手間はかかりましたがGoogle Apps Scriptの作成、トリガー登録は無料アカウントでもでき、claspというツールを使えばコードを手元で編集して簡単にアップできるので、ほかにも色々使えそうに思いました。
ZabbixのDockerイメージバージョンアップ時にtimezoneエラー
Dockerにて、本家のイメージを使って運用している。
4.0.22から4.0.24にアップしたところ、以下のエラーが出て監視画面が表示されなくなってしまった。
DateTime::__construct(): Invalid date.timezone value '"Asia/Tokyo"', we selected the timezone 'UTC' for now.
よくよくみると、「Asia/Tokyo」の前後にダブルクォーテーションとシングルクォーテーションがついている。ひょっとしてと思い、Dockerで環境変数を指定している箇所
PHP_TZ="Asia/Tokyo"
をダブルクォーテーションなしで
PHP_TZ=Asia/Tokyo
と修正したところ、無事表示されるようになった。
PowershellでActiveDirectory情報取得で原因不明の不具合
Active Directoryの情報をPowershellで取得し、管理資料に起こすスクリプトを作成。せっかくなので定期的にスクリプトを実行して差分がないかタスクスケジューラで定期実行してチェックする運用を構築していた時に問題が発生。
手動で実行する分には問題ないのだが、タスクスケジューラを通して実行するとなぜか以下問題が発生 * ADのオブジェクトのSort-Objectでの並び替えが効かない * Get-GPOReportで出力した一部XMLに差分が検知される。実際に比較してみると差分はないのだが...
によると、手動実行とタスクスケジューラからの実行時で既定のモジュールパスが異なるということなので、それによるのかもしれない。が、プログラムがこけているわけではないので、原因はどれなのか得的できず、どれをロードすればよいのかわからない。
実行の都度生成されるファイルが変わってしまうようではチェックには使えないということで、タスクスケジューラによるチェックは断念した。
Powershellをタスクスケジューラから呼び出す処理はほかに多数書いており、問題になったことはない。Active Directoryを操作する際にはImport-Moduleで専用のモジュールを読み込んで処理をするのだが、こういった書き方をする場合に問題となるのかもしれない。 原因は不明。
Emotetメール襲来
当社にもEmotetもメールが多数届いており、開いてしまったという問い合わせが来た。
Wordファイルを既定の保護モードで開き、[編集を有効にする]をクリックしなかったので事なきを得た。
ファイルをWindwos SandboxにLibreOfficeをインストールしてマクロを確認すると、意味不明な多数の文字列などが大量に記載されており、難読化されているようだった。
うーむ。UTMなどの追加対策をすべきか。
zabbix起動時にエラー
zabbix起動時に以下のエラーが表示されてログイン画面が表示されない。
DateTime::__construct(): Invalid date.timezone value '"Asia/Tokyo"', we selected the timezone 'UTC' for now. [再起動]
再起動ボタンを押しても同じ画面が再度表示されるだけ。zabbixは公式のDockerイメージ(zabbix/zabbix-web-nginx-mysql のタグ「4.0-latet」を使用していた。「4.0.22」に戻したところ、正常に動作することを確認。原因は調査できていない。