terraform-provider-azurermでエラーが出たときの調査ログ

Terraformのトラブルシューティングログです。 問題起きた時にどうやって原因を突き止めるのか、後で手順を誰かに説明する時のために書いておきます。 事象 TerraformのProviderのリポジトリを確認する ログを取得する APIを確認する Githubを検索 最終手段 …

ACR(Azure Container Registry)に保存されているイメージの世代管理をしたい

ACRのイメージが溜まるのが気になるので、古いモノ削除したいなと思って調べてみたら以下のMicrosoftの公式ページにまとまっていました。 ただ、記載があるのは、タイムスタンプである期間より古いものとか、タグの付いてないものを削除する手順でした。今回…

90歳超えた祖母のところにiPadとポケットWiFi置いたら色々捗った

介護施設に入っている90歳を超える祖母がいるのですが、休日には家族でお昼買っていって曾孫見せながら、一緒にご飯食べたりしています。話を聞くと日中はテレビばかりで退屈することがよくあるようです。 そんな祖母の一番の楽しみは曾孫の成長を見ることの…

TerraformでLinux Azure VMにHeartbeatの死活監視を組み込む

タイトルの件、検索してもあまり見つからなかったので書き残しておきます。 いきなりTerraformの定義です。ドキュメントを元に作ってます。 www.terraform.io variable "azure_subscription_id" {} variable "azure_tenant_id" {} variable "mail_address" {…

AKSやVMで複数マネージドIDに紐付けるとIdentity not foundとなり認証できなくなる件

結論 事象 事象の深掘り 原因を調査 Addon設定前 Addon設定後 最後に 参考URL 結論 複数のマネージドIDを紐付けている時には、認証時にどのマネージドIDを利用するか指定する必要があります。 こう書くと当たり前の話ですが・・ハマりました。 以下の例ではA…

Kubernetes KEDAのログレベルを変更する

KEDAは常時起動でポーリングしQueue等をチェックしているので、結構なログの量になります。 現時点でログのレベルは debug, info, error の3つが設定可能で、デフォルトはinfoとなっています。 https://github.com/kedacore/keda#keda-operator-logging この…

Azure PipelinesでAKSプライベートクラスタにデプロイを行う

AKSはAPIサーバーへの通信をプライベートに限定するプライベートクラスタを構築することが可能です。 ただしDevOpsでCI/CD組もうとすると通常のAKSクラスタだと簡単に統合できたところが、プライベートクラスタだと上手くいきません。(API叩けないので当然で…

WSLで777となったファイルやディレクトリをchmodでumaskの値に一括変更

小ネタです。 経緯 何も設定していないWSL上で普通のLinuxみたいに開発していたらパーミッションが 777 になってしまいます。 これを避ける設定として以下のような設定があります。 wsl.conf を設定して、 $ cat <<EOF | sudo tee -a /etc/wsl.conf [automount] options = "metadata" EOF WSLを再起動。 > wsl --shutdown PC交換後にこれを忘れてい</eof>…

kustomizeのvarsを使って環境毎の変数をKubernetesの定義に埋め込んでみる

KubernetesのYAMLを環境毎のに分ける時にkubectlに標準で入っているkustomizeを使ってるのですが、サンプルなどに書かれている patchesStrategicMerge では以下のようなYAML内の値に変数を埋め込めないな。と考えていました。 kustomizeのリポジトリを見てい…

Azure Kubernetes ServiceのPod上でkubectlコマンドをマネージドID認証して実行

AKSでもマネージドIDが使えるようになったことで、KubernetesのPodから定期ジョブなどでkubectlを実行したい時にAzure CLIで認証できるようになりました。 前提 コンテナイメージをビルド ENTRYPOINTのスクリプト イメージのビルド ACRにイメージをビルド Ku…

Azureリソースのマネージド ID(旧MSI)の権限をCURLでREST APIを実行して検証する

最近、AKSも対応したマネージド ID(旧MSI)です。これで認証情報をローカルに持たなくてもAPIが叩けるようになりました。 docs.microsoft.com 権限の検証はAzure CLIやSDKでも検証できますが、ここでは手っ取り早くcurlで検証する方法を記載します。 仮想マシ…

エンジニアのリモートワーク・在宅勤務における腰痛対策の例

東京に出るまで片道2時間以上かかるところに住んでいることもあり、コロナ禍に関係無く、ここ1年半くらいリモートワーク中心のワークスタイルでやってきています。 リモートワークメインになって立って歩くことが激減しました。そこでダメージが溜まるのが腰…

TerraformでAzure DevOpsをプロビジョニングする

タイトルの通り、Terraform使ってAzure DevOpsをプロビジョニングする方法です。 前提 組織登録 Personal Access Tokenの取得 Terraform定義準備 Terraformの定義の準備 Azure DevOps Providerのインストール Terraformの実行 スキーマの確認 前提 組織登録 …

KEDAを使ってServiceBus Queueに合わせてKubernetesジョブをスケールする

KEDAは「Kubernetes-based Event-Driven Autoscaling」の略で、イベントをトリガーとしてKubernetesのデプロイを管理することを目的としたCRD(Custom Resource Definitio)で、イベントを使ってpodを0~nにスケールイン・アウトできる機能です。 KEDA is a Ku…

Azure Kubernetes ServiceのPodからManaged identities(旧MSI)認証でKey Vaultの情報を取得する

Key Vaultに保存した情報をAKS上のPodから取得するような要件は良くあると思います。でもKey Vaultへの認証をどうしたものかと思っていました。Service Principal使えば良いのですが、AKSでもMSIを使えたら良いなと思い調べていたところ、以下の情報がドキュ…