zaki work log

作業ログやら生活ログやらなんやら

[Ansible] 別ユーザー(非root)権限でのタスクの実行 (become)

Ansibleでroot権限でタスクを実行したい場合はbecomeキーワードを使えばいいが、本質的にはこの仕組みは任意のユーザー権限でタスクを実行するもの。 root権限で処理されるのは、いくつかの関連パラメタを省略するとデフォルトでroot権限で動くようになって…

[Ansible] リモートでの実行時に必要なpipパッケージインストールを含むプレイブック実装 (とPEP668の回避策)

Ansibleでタスクを実行するリモートホストで追加のPythonパッケージが必要な場合に、プレイの中でまずpipでパッケージを入れるタスクを実行した上で依存パッケージが必要なタスク実行を一気通貫で処理する、というもの。 ありがちな例としては、ローカルホス…

[PEP 668 回避 / Python] Ubuntu 24.04でpipを仮想環境外でシステムワイドに使う

他のディストリビューションだとpython3-pipパッケージをインストールすればvenvなどの仮想環境無しでもpipを使ってPythonパッケージやコマンドをインストールできるが、Ubuntu 24.04はpython3-pipパッケージがなく (4/27 訂正: apt-get updateしたらpython3…

[K3s / Prometheus] リモートのPrometheusサーバーを使う構成でkubectl topするためのK3sメトリクスサーバー構築

Prometheus Adapterの設定にPrometheusサーバー本体のアドレスを設定する箇所があったのは覚えてたので、ここにリモートで動作するサーバーを指定すれば、クラスター内にPrometheus本体や溜めたデータのストレージを持つ必要がなくなるはずと見込んで、ラズ…

[Git] リモートリポジトリとの通信状況などのログを出力する

git cloneやgit pushでやたら時間がかかる場合などに、どこにボトルネックがあるかを確認するためにログを表示させる。 Gitのトレースログの有効化 Git環境変数で指定。 いろいろあるので状況に応じて試す。複数指定可能。 git-scm.com HTTP接続の状態を確認…

[K3s] K3s構築後のコンポーネントのon/off

結論としては、構築済みK3sの場合でも他の設定変更と同様に起動オプションに設定してサービス再起動すればOK --disableを追加すれば削除され、削除フラグを除外すれば再デプロイされる。 K3sのインストールオプションで以下のコンポーネントは--disableに指…

[CML 2.8.1] ラボに作成した仮想ルーターにCMLの外部からSSH/Ansible接続するための手動設定

先日構築したフリー版CML2.8.1で、Cisco IOSに慣れるためにここで作った仮想ルーターにCMLの外からSSH接続するための設定についてのメモ。 構成としてはこんなイメージで、ルーターはCML本体と同じネットワークに繋がる。(External Connectorの位置はブリッ…

Ubuntu版FortiClientを使ってCLIでVPN接続

Windows版だと(特に業務で)割とよく使ってると思うFortiClient、公式でLinux版もリリースされているのでUbuntuで接続を試してみた。 www.fortinet.com Ubuntuは22.04向けの手順だが24.04でも全く同じ手順でインストール可能。 他にはCentOS 7+ / RHEL7+ / Fe…

[CML 2.8.1 on PVE] Proxmoxのweb UIのOVAインポートでCisco Modeling Labs - Freeをお試し

昨年末にCisco Modeling Labsのフリー版がリリースされたという話を聞いてたので、手元の環境でも試してみた。 4年前に1度CML通常版(このときはESXiにデプロイ)が手元にあったけど使いこなせなかったので、今回はちゃんと使ってみたい…と思う。 zaki-hmkc.ha…

[Proxmox VE] AnsibleプレイブックでPVEのVM作成やクローンをより効率化する (community.general)

AnsibleのCommunity.GeneralコレクションにはProxmoxVEを操作するためにモジュールがいくつか含まれており、これを使ってVMを作ったり、作成済みテンプレートからクローンしたりできる。 特にクラウドイメージを使ったVMのクローンにおける追加パッケージイ…

[Proxmox VE] 複数のPVEノードでクラスタを構築しゲストVMのマイグレーションを試す

年末に衝動的にデスクトップ用途のPCを購入し、それまで使っていた「最初はESXiを入れてたけど新PCのProxmox VEに移行したため(それ以前のPCはwin10からアップグレードできなかったので)Windows11で使ってたIntel NUC」が再び役割を終えて部屋のオブジェにな…

[Terraform / AWS] aws_iam_roleリソースでinline_policyがdeprecatedになってたのでコード修正

以前作成したEC2に対するEventBridge Schedulerを使うためのロール設定内のポリシー設定、いつのまにか inline_policy がdeprecatedになっていたのでその修正コードについてまとめ。 完成品 2025年2月時点で動くコードは以下。 resource "aws_iam_role" "sto…

[HashiCorp Vault] シークレットエンジンの有効/無効化のREST操作

以前作成した以下のエントリ、「作成済みのKVシークレットエンジンへのキーの読み書き」はCLIとRESTの操作をメモしていたのに、その前段の「KVシークレットエンジンの有効化・無効化」が抜けてたのでメモ。というかやろうとしたらドキュメント(エンドポイン…

SSH秘密鍵のパスフレーズを変更(セット / 解除)する小ネタ

TL;DR 以下のコマンドで、対象の秘密鍵のパスフレーズを変更できる。 空入力すればパスフレーズ無しになる。 ssh-keygen -f <秘密鍵のパス> -p 確認のログ パスフレーズのセット パスフレーズが設定されてない秘密鍵でsshログインする。 zaki@cloud-dev2:~$ …

[Ansible / Jinja2] 「{{ sample }}」 という文字列を出力するためのエスケープ記述

お題:以下の内容のテキストを出力したい。 {{ username }} {{ password }} Jinja2で変数参照する際は、{{ 変数名 }} と記述するため、{はそのままでは出力することはできません。 2通りの方法があるのでそのやり方についてメモ。 詳細はJinja2のEscapingの…

Pythonインタプリタを入れるために開発環境セットアップツールのmiseを使ってみた

以前はpyenvを使ってPython実行環境をセットアップしたりしてたが、Pythonをビルドするところから始めるために必要なdev系パッケージが必要だったり、そのために管理者権限が必要だったりするので、もっと他に手軽な方法が無いか調べたところ、asdfやmiseが…

古いバージョンのDockerをインストールする

事情によりクローズドな環境などで古いバージョンのDockerを運用で使い続けている中で、その調査・検証用に同じバージョンのシステムを構築したくなった、とか。 基本的には、古いパッケージファイルを探してきて手動(rpmやdpkg)でインストールすれば良い。 …

[cloud-init] /etc/hostsを手動で編集してもリブートすると復元されてしまう場合の対処

普通にISOからインストールした環境でなく、クラウドイメージなどからcloud-init使ってプロビジョニングしたOSの場合、/etc/hostsファイルは外部管理となって直接編集してもOS起動時に所定の内容に上書きされる。 平たく言うと、以下の仕掛けで作った環境で…

[Proxmox VE] PVEホスト名の変更

年末にデスクトップPCを衝動的に購入してそれまで使っていたIntel NUC(元ESXi -> win11)がまた余ってしまい、それならProxmoxでクラスタを組んでみるかと思ったので、準備としてホスト名を整理することにした。 平たく言うとデフォルトのpveでセットアップし…

[K3s] opensslで用意した自前のサーバー証明書でTraefik Ingress Controllerを運用する設定

K3sインストールで標準でついてくるTraefik Ingress Controllerは、デプロイしたPodへ簡単にHTTPSアクセスを実現できるので大変便利です。 デフォルトではダミーの証明書が使われるので、プライベート環境などであれば証明書エラーを無視して運用するという…

[K3s] 手動のクラスターアップグレード備忘録

ドキュメント通りなので特に問題ないけどメモとして残してなかったので一応。 docs.k3s.io 概要 ポイントは「インストールした時と同一のオプションで」再度インストールスクリプトを実行すればOK たとえば使用するIPアドレスなどを指定してインストールした…

[NetBox on arm64 K3s] NetBox公式のHelmチャートを使ったKubernetesへのデプロイ (リポジトリとOperatorメモ追記)

2025.05.05:チャートのリポジトリが追加された件について&K3sのHelmChart使用について追加記事作成 zaki-hmkc.hatenablog.com 2025.02.06追記:チャートのリポジトリ追加について追記 しばらくキャッチアップしてなかったNetBox、職場のチームの周りでNetB…

[Bluesky / TOKIMEKI] もっとときめくためのChrome拡張

本エントリは「Bluesky Advent Calendar 2024 - Adventar」の10日目のエントリです。 Chromeブラウザでweb版TOKIMEKIを使ってる方、webページ見てるときにBlueskyのリンクを開くと「これ、TOKIMEKIで開けたらいいのに…」と思いつつアドレスバーのURLを手入力…

[Git] SSHサーバーとGitコマンドのみで構築するGitリポジトリサーバー

ユースケースとしてはコンピュートリソースが乏しいクローズドな環境でGitリポジトリサーバーの用意・利用が困難な場合に、gitコマンドでベアリポジトリを作ればSSHサーバーが動作している普通のLinuxを簡易的なGitリポジトリサーバーとして利用する、など。…

dnf updateでGPGの期限切れエラーになったときの対処方法

メインマシンのFedoraのパッケージアップデートでkubectlの更新がエラーになったのでその対処方法についてメモ。 最初の頃は登録が少なかったヘイシャアドカレのいつのまにか全部埋まってたので特に何も紐づけずに公開(笑) 初期状態 コマンドバージョン アップデ…

[Terraform] HashiCorp Configuration Language(HCL)コードのドキュメンテーションとGitHub Actionsで自動化 (terraform-docs)

本エントリは「エーピーコミュニケーションズ Advent Calendar 2024」の2日目のエントリです。 TerraformのコードのREADME作成時に何かいいのが無いか調べてみたらterraform-docsというプロダクトを見つけたので、使い方について簡単にまとめました。 github…

[Hahicorp Vault] K3sにデプロイするときの公開設定のHelmチャート (Ingress/LoadBalancer)

K3sは標準でIngressもLoadBalancer Serviceもどちらも使える。 VaultデプロイのHelmチャートのパラメタはそれぞれ異なる場所にあるのでメモ。 Ingress LoadBalancer Service Ingress K3sはTraefik Ingress Controllerが標準でインストールされる。 Vaultデプ…

[html/css] 使用するCSSファイルをJavaScriptを使って動的に切り替える

WebアプリのスタイルをテーマごとにCSSファイルで定義し、設定画面のフォーム操作などで使用するCSSファイルを切り替えてスタイルを更新する、というのをできるか試してみたところDOM操作で普通にできたので、そのやり方について。 通常のCSSファイル指定 通…

[JavaScript / Python] 配列内に指定の要素が含まれるかどうかをチェック (備忘録)

よく使うけとすぐ忘れるので。 JavaScript 基本構文 例:httpステータスチェック Python 基本構文 例:httpステータスチェック 辞書の場合 集合(追記) JavaScript includesを使う。 developer.mozilla.org 基本構文 array.include(item); 例:httpステータス…

[Terraform / AWS] externalデータソースを使った外部コマンド実行でセキュリティグループに自分のIPアドレスをセットする

Terraformで環境を作成する際のアクセス元IPを設定したい場合に、AWSのwebポータルだと「マイIP」でアクセス元グローバルIPを簡単にセットできるけどTerraformなどは機能として提供されてなさそうだっため、事前にアドレスを取得してそれをセットするという…