zaki work log

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

Linux

[Linux] GitHubに登録している公開鍵を ~/.ssh/authorized_keys に取り込む

取り込むというか単にcurlで取得できるよ、という小ネタ。 少し前からUbuntuのOSインストール時にGitHubに登録してるSSH公開鍵を設定できるようになってたりしてますが、GitHubの公開鍵は特定のURLで簡単に参照できるので、OSインストール後でも任意のタイミ…

[VyOS] NAT設定を使ったネットワーク間のルーティング (手動 & Ansible / vyos_config)

VyOS自体のIPアドレス設定は前回までにできたので、ようやく(?)ネットワーク間でNATを使ったルーターとして動作するための設定をやってみる。 (試行錯誤でやってるんで「こうした方がいい」とか「いや、そのりくつはおかしい」とかあったらぜひ教えて欲しい……

[Linux] systemdのユニットファイルを自分で書いてプログラムをdaemon動作させてみる

systemdのユニットファイルを作成してみる。 rcスクリプト育ちだったのでsystemctlコマンドは慣れるのに時間はかかったといえさすがにもう息を吸うように使うようになったけど、systemdのユニットファイル周りは基本的な部分があまりわかってないのでお試し…

[Linux] ターミナルでコマンド履歴の検索とsttyのstop設定

bashやzshはシェル上でCtrl-r押下してからコマンド名やオプションの文字列を入力すると、コマンド履歴からインクリメンタルサーチできる。 (reverse-i-search)`': Ctrl-rを押下すると↑のようにプロンプトが変化するので、例えばここにkubectlと入力すれば、…

[ssh / docker / kubectl] ローカルの標準出力をリモートの標準入力にする

sshやdocker exec、kubectl execで、シェルを起動せずに直接コマンドを実行できるが、sshなどを実行するローカルの標準出力をリモートホストやコンテナの標準入力として処理する方法について。 SSHの場合 前提。 ローカルのhostnameはcloud-devで、リモート…

[Oracle Cloud] CLIツールのセットアップメモ

Oracle CloudをCLIで操作するためのツールのインストールとセットアップについて。 以前何事もなくセットアップしていたんだけど、新しい環境に入れようとしたらいろいろ(鍵設定周りで)詰まったのでメモ。 (全自動でAPIキー設定出来る方法があるかもしれない…

VS CodeのRemote Development SSHのサーバー側のプロセスを再起動する

Ctrl + Shift + p(winの場合)でコマンドパレットを出して「Remote-SSH: Kill VS Code Server on Host」を選択し、プロセスをkillする対象サーバーを指定する。 実行するとどうなる サーバー側のVS Codeプロセスが終了するため、一度VS Codeがリモートから切…

[Ansible] acme_certificateモジュールでLet's Encryptから証明書を発行しApacheでHTTPSサーバー構築

httpdパッケージでApacheをインストール・HTTPS対応し、Let's Encryptの証明書の発行と設定までAnsibleで設定、できるのかな?と思って試したらうまくいった。 Let's Encryptで証明書を作成するには、ACMEプロトコルを利用し、このACMEプロトコルを操作する…

[Ansible] ターゲットホストのIPアドレスの参照とデフォルトゲートウェイの設定についてのメモ

Ansibleの実行の際に、設定ファイルを作ったりしたい場合に使えると便利なターゲットホストのIPアドレスの参照方法について。 内容は「動かしてみてその内容をまとめたもの」なので、ドキュメントやソースコードを追ったりまでは確認できていないです。 play…

VS CodeのRemote DevelopmentでSSHアクセスすると接続先の高負荷状態が続く問題と対応

年末くらいから、メインの作業用Linuxマシン(この1台のみ)にVS CodeのRemote DevelopmentでSSHアクセスすると一定時間高負荷状態が続いていたので、なんとかならないかと原因調査した結果。 なお、クライアント側のVS CodeはどのPCから接続しても、特定の接…

SNMP Exporterを使ってArista EOSのSNMPの情報をPrometheusから参照する

SNMP Exporterをお試し。 環境は、SNMP ExporterもPrometheusもCentOS 7上で直接バイナリを実行している。(非K8s環境) SNMPエージェントについてはDockerで動作するArista EOSを使用。 Prometheusバージョンは2.23を使用。 実行用バイナリの入手 SNMP Export…

kickstartインストールで公開鍵の登録処理も追加

kickstartインストールのcfgファイルに %post command 1 command 2 : : %end と記述しておけば、インストール処理の最後に実行される。 access.redhat.com なので、ここに公開鍵を作成したいユーザの/home/<username>/.sshディレクトリを作成し、公開鍵の内容をcatでフ</username>…

PrometheusのBlackbox Exporterを使ったターゲットノードの死活チェックをお試し (HTTP / TCP)

Blackbox Exporterをお試し。 機能的にはKubernetesのヘルスチェックのhttpGetおよびtcpSocketのように、外部からターゲットに対してネットワーク的に疎通確認を行うExporterとなっている。 (よって、監視対象ノード上で動かす必要はなく、Exporter(を動かす…

ものすごくざっくりとPrometheusのアラートルールを設定して動きを見てみる

Prometheusのアラートルールを設定する。 閾値を越えたらalert状態にするというもの。 この状態になった場合の通知はまた別途AlertManagerを使うが、その前段階の設定についてざっくりと確認してみた。 prometheus.io 環境やベースのPrometheusは以下の「Cen…

PrometheusとNode ExporterをCentOS上でバイナリを直接動かして動きを確認してみる

先日のOperatorを使ったK8sクラスタへのデプロイは全自動だったので一体何が動いたのか!?という感じだったので、Prometheusのコンポーネントや動きを理解するために、素のPrometheusを使いGetting Startedの内容に沿って動かしてみる。 prometheus.io Prom…

[ESXi / CentOS 7] ディスクを"追加"してパーティションサイズを拡張

実はスナップショットがあると既存ディスクのサイズ拡張ができなかったので、新しくディスクを作成してパーティションサイズを拡張した。 zaki-hmkc.hatenablog.com 内容は、上記の「サイズ拡張した領域にパーティション作成して拡張」が「新しく追加したデ…

IUSリポジトリのパッケージでCentOS 7にGit version 2をインストールした

VS CodeのGitHistoryやGitLens拡張がいつの間にか動かなくなってた。 エラーの通りGit Versionが1系なのが原因なのでアップデートしてみる。 こんなエラー git shortlog -e -s -n HEAD (completed in 0.008s) git log --full-history --pretty=oneline --dat…

制限ネットワーク環境のRHEL7でproxy経由でサブスクリプション登録とDockerインストール

実は自宅環境でRHEL入れるの初めてなんですよ…。 記事内のproxyは172.29.0.11:8080 zaki-hmkc.hatenablog.com RHEL7の取得とインストール後のサブスクリプション登録 イメージの取得 OSインストール サブスクリプションの登録 proxy設定 システムの登録 利用…

[Docker] コンテナでSquidを動かしてproxyサーバーを構築

2年近くproxyすらないネットに繋がらない環境にいて、少し前にようやくパブリッククラウドの自由ないんたーねっとを手に入れたぜうっひょーと思ったら、今度はついにproxy環境での検証をすることになったので、自宅ラボにも似たような構成作れないか、Squid…

[ESXi] CentOS 7のストレージ(XFS)を拡張する

CentOS 7 (on ESXi 6.5)のストレージを増やしたい。 LVMわかってないので、参考記事ベースに作業してみたらうまく行ったという内容。 ディスクサイズの増加 パーティション作成 fdisk起動 現パーティション 空きストレージにパーティション作成 システムタイ…

Windows Terminalの新規ターミナルに項目追加して1操作で指定サーバーにssh接続できるようにする

Windows Terminalの「新しいタブ(ターミナル)を開く」に、いつもsshで接続して作業するメインのホストにシェルを起動する。 設定箇所 タブを開く新しい項目を追加する 追加項目のコマンドにsshを指定する 公開鍵認証設定してパスワードを聞かれないようにす…

[コマンドメモ] 引数を1個しか取れないコマンド実行にxargsで複数のパラメタを渡したいときは-n1を使う

以前bashのループで回避したけど、そもそもxargsで1個ずつ引数渡せないの?と調べたら-nオプションがあったのでメモ。 $ kubectl config get-contexts -o name | grep ... | xargs kubectl config delete-context Delete the specified context from the kub…

[Azure] CLIツールをインストール(CentOS)して、VM作るまでお試し実行

AzureのCLIコマンドをローカルのCentOS7へインストールする。(ただそれだけ) yumを使ってインストールするので簡単。 docs.microsoft.com 2020.07.28時点でver 2.9.1をインストールした時の作業ログです。 インストールする際は、最新の情報を確認して作業し…

[AWS] CLIツールのインストール(on Linux)

LinuxへAWSのCLIツール(version 2)を入れる。 ただそれだけ。 以前はpipで入れてた気がするけど、今はzipでバイナリをダウンロードする方式になっている。 docs.aws.amazon.com インストール 初期設定 お試し インストール [zaki@cloud-dev aws]$ curl "http…

[コマンドメモ] Linuxでzip操作

200年に1回くらい遭遇するLinux OSでzipの展開。 unzipはわかるし、-hすればまぁ分かるけど一応メモ。 アーカイブ内のファイル一覧 展開時にファイル一覧を出力しない 指定ディレクトリに展開 (おまけ)zip圧縮 アーカイブ内のファイル一覧 tarだとtar tf <filename>に</filename>…

[Kubernetes] podに任意のログを発生させてkubectl logs -fの出力を自由にコントロールしたい

podのログの監視ツール作成みたいな作業をしているときに「任意のログをpod内に発生させたい!」ということがあったので、その方法について。 TL;DR 解説 podで動作確認 普通のLinux OS上で確認 TL;DR ログを発生させたい対象podのシェル上(kubectl exec -it…

[コマンドメモ] firewall-cmd備忘録 (firewalld)

firewall-cmdをたまにしか使わないので覚えられず、いつもブログの過去記事から探してるので、まとめておく。 設定確認 デフォルトゾーンの設定を見る 全てのゾーンの設定を見る ゾーン関係 一覧 アクティブなゾーンの一覧 ゾーンに指定インタフェースを設定…

[Ansible / Linux] sysctlコマンドとAnsibleモジュールについてメモ (sysctl_set未解決)

kernelパラメタを更新するのに使用するsysctlとAnsibleのsysctlモジュールについて、設定ファイルと読み込みの動作について備忘録。 sysctl_setパラメタについては不明点あり。 docs.ansible.com sysctl CLIコマンドについて sysctl -w について sysctl -p …

[Ansible] get_urlモジュールでyum-config-managerコマンドをAnsible対応

細々とkubeadmを使ったKubernetesクラスタのデプロイをAnsibleで自動化するってのをやってるんだけど、手順の中のContainer RuntimeのインストールでDockerインストールのためのYumリポジトリの設定をyum-config-managerで行うというのがあって、でもAnsible…

[Ansible] CentOSのswap無効化を行う (check_mode / changed_when / ignore_errors)

Kubernetesのシステム要件に「swapがオフであること」というのがあるので、Ansibleつかってノードの準備を行う際に「swapが有効の場合には無効にする」というのを冪等になるようにやってみた。 対象はCentOS 7 taskの例 現在のswap設定 swapが有効化かチェッ…