もりはやメモφ(・ω・ )

ITとか読書感想文とか

小ネタ

ラズパイとCO2センサで自室の二酸化炭素濃度を可視化した

以下のツイートの通り。 ラズパイとCO2センサ mh-z19 で自室の二酸化炭素濃度の計測グラフができました。Viva 可視化!!!(自室、狭いこともあって凄い勢いで濃度が上がります...)Thank you, Dr. Takeyuki Ueda https://t.co/uxTLAhdSZb pic.twitter.com/L…

GitHub ActionsでAnsibleを実行した時に秘密情報が記録されるのをsedでマスクする

Ansibleのpostgresql_userモジュールを使ってRDS PostgreSQLのユーザ管理を行なっています。 それをGitHub ActionsでCDしたいとなりましたが、Ansibleの標準出力にパスワードが含まれてしまうためマスクした話です。 docs.ansible.com 別の方法もあるよ(2021…

CodeDeployで謎のエラーがスクリプト実行時に出ると思ったらCRLFだった

タイトル通りです。以下のようなエラーをCodePiplineで呼び出してるCodeDeployから受けました。 codedeploy error Event details Error code ScriptFailed Script name ./codedeployhooks/aftinstall.sh Message Script at specified location: ./codedeploy…

Kubernetes試験CKAの予約がエラーとなり、サポートに解決してもらいました

タイトルの通りです。どこかで誰かの役に立つかもしれないのでメモしておきます。 起きたこと Linux Foundation Training Portal からCKAの予約をしようとしたところ、以下のエラーが表示されました。 Booking error on CKA You are not eligible to take th…

Terraform の for_reach を使って New Relic の Synthetics を定義する

タイトルのままです。 先日利用を始めた個人環境用の New Relic について、Infrastructure だけではなくて外形監視(Synthetics)も行うことにしました。 Terraform では New Relic のための Provider も用意されており、New Relic 側に丁寧なスタートのための…

個人用サーバのInfrastructure監視にNewRelicのFreeプランを使い始めました

New Relic - Infrastructure これまで個人用サーバの監視にMackerelのFreeプランを利用してきました。 なにしろFree(無料)ですから利用できるだけで感謝しています。が、データの保存期間が1日しかないことに少し物足りなさを感じていました。 一時期Rasphbe…

SSO&JIT Provisioningを有効にしたDatadogへ、招待中のユーザがログインできなかった話

タイトルの通りだったのですが、結構ハマったのでメモしておきます。 結論を書いておくと、すでに招待中( Invite Pending ) のユーザは SAML で JIT ログインできませんので一度削除しました、という話です。 前提 Datadogで Single Sign On With SAML の機…

brew upgrade 後、 fish で "fatal: not a git repository (or any of the parent directories): .git" がコマンドを打つたびに出た

オリンピックの開会式を見ながら、久しぶりに brew upgrade を実施したところ、エンターを打つたびに以下のエラーが出る様になり慌てました。 fatal: not a git repository (or any of the parent directories): .git brew upgrade 前までは以下の様なちょっ…

JTF2021登壇メモ&会社ブログも書いたよ

詳細は会社ブログへ!>< creators.oisix.co.jp ってだけだと微妙なので今回は意外とスムーズに資料も準備できたのでメモっておきます。 アウトラインを最初に作る 資料作りのポイントしてよく言われていることですが、いきなりスライド作成から入らないこ…

Datadog APM の Java 用トレーサー dd-java-agent.jar のバージョンチェック方法

タイトルの通り、 dd-java-agent.jar のバージョンを調べる方法です。 docs.datadoghq.com やり方は以下の通り。 unzip -p dd-java-agent.jar | head 結果は以下のようになります。 Implementation-Version: 0.78.0 から 0.78.0 であることがわかります。 un…

ansible-vault で vars ファイルを書く際に、一工夫してみた

ansible-vault を久しぶりに使って、ちょっと工夫してみたのでメモしておきます。*1 docs.ansible.com 機密情報を含むファイルをAnsibleで扱う場合は ansible-vault コマンドで暗号化した上でリポジトリにPushします。 ansible-vault コマンドは大きく以下の…

Ansibleの繰り返しは with_xxx より loop を使った方が良い時代になってた

タイトルの通りです。手癖で with_items でループ処理を書きかけましたが、ドキュメントのサンプルでより良い書き方がないかと読んだところ loop を推奨されていてびっくりしたのでメモです。 具体的には以下の文章がありました。 We added loop in Ansible …

Datadog の Glock の Parseで 文字列にしてしまって Generate Metrics ができなかったメモ

最初にまとめ 最初に結論を書いておくと Datadog Logs の Generate Metrics の機能を、Nginx の request_time に対して有効にしたかった Datadog Logs の Configuration の Pipelines の Grock Parser で regex(".*") を使っており、string(文字列)で認識さ…

GitHub Actions で Ansible の playbook を生成して特定のTagのEC2をターゲットに実行

GitHub Actions で Ansible の playbook を生成して特定のTagのEC2をターゲットに実行するYAMLを書いたので、備忘でメモしておきます。 本来であれば以下のようなオープンなActionsを利用すべきでしょう。(自前で頑張るのは極力避けておくのが良いはず) gi…

DatadogのCLIツール dogshell でサイトメンテ前後で Synthetic をミュートする

Datadogには、 dogshell と呼ばれるCLIツールがあります。 この dog コマンドを利用して特定のMonitorを mute -> unmute したメモです。 利用したのは dog 0.41.0 です。 docs.datadoghq.com Why 背景を簡単に書いておくと、ウェブサイトで夜間メンテを行う…

GitHub Actionsでサーバからファイルを差分があったときだけ更新して取得

以下の要求をみたすGitHub Actionsを書いたので備忘でメモ 取得したいファイルは各サーバのローカルに保存される ファイルをサーバ名ごとのディレクトリの下へ取得し、GitHubのプライベートリポジトリにプッシュ そのファイルは不定期に更新される 取得を定…

Terraform の random_id.xxx.b64 が random_id.xxx.b64_url になっていた

小ネタです。ある日、RDSと全く関係のないTerraformコードを追記したところ、意図しないところでCIがこけたので修正した話です。 最初に結論 Resources の random_id で b64 を使って以下のエラーが出てしまった場合、単純に b64 --> b64_url とすれば差分な…

Ansibleの fetch と copy で複数台サーバの特定ファイルを一括整理する

小ネタです。AnsibleでPlaybookを使わず、 ansible コマンドを使ってアドホックに以下をしました。 ファイルを一括収集 ファイルを一括配布 経緯としては以下です。 10台以上ある開発用サーバがあり、誰もが比較的自由に使えるのでカオスな状況になっている(…

mackerelでWindowsサーバでDNSが引けるかチェック監視をpowershellのワンライナーで追加する

普段はLinuxサーバばかり触っていますが、一部Windowsサーバもあります。 とある日にDNSが引けなくなる問題が発生し、WindowsサーバでDNSが引けるかのチェックを定期的に行いたくなり、mackerelのチェック監視で簡単に行なったのでメモしておきます。 (調べ…

Terraformのfor_eachを使ってhosts運用からRoute53 private hosted zone運用 へ切り替える

これは terraform Advent Calendar 2020 の12/7の記事です。 昨日(12/6)は entertvl さんの terraform-provider-esxi を使って自宅 ESXi サーバに VM を立てよう でした。ESXiへもTerraform使えるのか、、と初めて知りました! 明日(12/8)は transnano さん …

Jenkinsfileでchoiceの選択値を複数の変数に分割して利用する

こんにちは、今日は歴史的な日ですが私はJenkinsfileと戯れています。*1 最近はCIやCDはGitHub ActionsやAWS Code兄弟に任せていますが、人間が入力値を選択して特定のジョブを実行するようなケースでJenkinsの出番がしばしばあります。 今回、選んだ値から…

Ansible で複数台サーバの結果を順番(Sequential)に取得する

ansible コマンドって便利なんですよ 日頃から大量のサーバを管理する中で、Ansible の Adhock な実行はとても便利です。 もちろんサーバの構成管理であったり、Packerから呼び出す初期セットアップとしての Ansible Playbook も愛用していますが、なんだか…

AWS CodeCommitで不要なブランチを一気に削除する

プライベートなGitLabからCodeCommitへ移設したとあるリポジトリについて、大量のブランチがあって今すぐ消したい!!となったので簡単なシェル芸で対応したのでメモ。 課題: 直面したブランチ多すぎ問題 例えばこんな感じだった。 謎のポリシーでブランチを…

Dockerが利用するサブネットを変更する

EC2で稼働していたDockerのサブネットを後から変更したのでメモします。 大体はこちらのブログの通りです。感謝。 support.getjoan.com 経緯 Apache Guacamoleという便利なソフトウェアをご存知でしょうか。簡単に言えば「RDPやVNCの集約ツール」です。Windo…

digdagでファイルシステム上のファイルをチェックして if> operator につなげるサンプル

既存システムとの連携などが、ファイルシステム上のファイルの有無による「フラグファイル」で行われることがままあります。 ファイルの存在のチェックし、その結果をdigdagの if> operator でやってみたという小ネタです。 Document - if>: Conditional exe…

物理RHEL7サーバにUSBを接続したときのUSB対応バージョンによるログの違い

業務で少し古めのサーバにUSB3.0の外付けSSDドライブを接続する機会があり、USB3.0対応の機器と、USB2.0までしか対応していない機器が混在しており戸惑ったのでメモします。 調べ方としては接続した時のシスログ(/var/log/messages)を見ればOKです。 USB 2.0…

digdagのループ for_each 利用時の _parallel 指定について

digdagのループ for_each 利用時の _parallel 指定について仕様を調べたのでメモ。 公式ドキュメントの Parallel execution にある通り「子タスクには効果があるが、孫タスクには効果が無い」ことを確認します。 If _parallel: true parameter is set to a g…

AWS WorkspacesのDirectryを削除しようとしたら "Cannot delete the directory because it still has authorized applications" が出る対策

検証で利用していたAWS Workspacesのお掃除をしていたところ、以下のエラーが発生して消せなくて焦りました。 An Error Has Occurred Cannot delete the directory because it still has authorized applications. Additional directory details can be view…

awsコマンドでEC2のGlobal IPとPrivate IPを取得する1行コマンド

開発者から「IPアドレスの一覧が欲しい」と言われて必要になったので作りました。メモとして残しておきます。 aws ec2 describe-instances | jq -c '.Reservations[].Instances[] | [ (.Tags[]? | select(.Key == "Name")).Value, .PrivateIpAddress, .Publi…

ALBとTargetGroup一式をTerraformにimportしてみる

年の瀬に何やってんだという感じではありますが、ちょっとしたタスク整理でALB一式をTerraformに落としたくなる場面があったので作業メモを残します。*1 試行錯誤した結果をそのままメモとして残していきますので、上級者が良いやり方をまとめた記事ではない…