zaki work log

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

朝活

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

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

[VMware / Ansible] 評価版ライセンスのESXiにvmware_guestモジュールを使ってVMを作成する

無償版ライセンスのESXiだとread系APIしか使用できないので無理だけど、60日間の評価版ライセンスだとwrite系APIもフルに使えるので、Ansibleのvmware_guestモジュールでVMを作成してみる。 docs.ansible.com playbook PyVmomi 環境 関連 playbook だいたい …

[Azure/AKS] CLI(azコマンド)でマネージドK8sクラスタを作成

AzureのAKSクラスタをCLIで作成する。(それだけ) 作業時のログなので、実際の作業は公式ドキュメントを確認すること。 docs.microsoft.com azコマンド リソースグループを作成 クラスタの作成 (補足)使用可能バージョン 認証情報設定 クラスタの状態 クラス…

[Kubernetes] Helm getting started

2020.11追記: 使用するリポジトリについて、以前はドキュメントにも載っていた https://kubernetes-charts.storage.googleapis.com がサービス終了し、新しく https://charts.helm.sh/stable を使用するようになっています。 Helmバージョン3.4.1からは旧リ…

[Azure] 通知用アクショングループの作成

料金アラートの警告通知が出てこなかったので、アクション グループが必要なのかと思って設定してみた。 docs.microsoft.com メニューの「モニター」から。 「アラート」メニューの「アクションを管理」押下。 まだ何もないので「アクション グループの追加…

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

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

Tera Termのsshアクセスの認証をコマンドラインオプションで自動化する

WindowsクライアントからTera Termを使ってsshログインしてるけど毎回パスワード入力してるのが面倒な場合、パスフレーズ無し公開鍵を作って公開鍵認証のコマンドラインオプションを設定すればダブルクリックでsshできます。 ssh関連オプション ショートカッ…

[kubectl / oc] ネームスペースの作成と削除と切り替え (コマンドメモ)

kubectxを使わずkubectlで済ます方法。 namespaceを作る kubectl create dry-run マニフェストから namespace切り替え namespace削除 kubectl delete マニフェストから OpenShiftだと 作成 切り替え 削除 namespaceと違うとこ 環境 namespaceを作る kubectl …

PowerShellのワンライナーでExcelの表とMarkdownの表をサクッと変換する

宗派に反して業務上Excelで表を作らざるを得ないけど手元ではMarkdownで編集したい!残したい!というあなたへ。 Excel → Markdown Markdown → Excel(TSV) 簡単に解説 Cygwinの場合 環境 Excel → Markdown こんな表があったとして、 Excelの変換したい部分を…

[Ansible] playをまたいだ変数保持をdelegate_toとfact変数で行う (Ansibleでkubeadmのworkerノード追加)

task(1)の実行結果を保持してtask(2)の入力にする、であればregisterを使って可能だけど、play(A)の実行結果を保持してplay(B)の入力にするには、、、registerで保持できる変数のスコープはplay内(←この認識は誤り)で、環境変数なんかはAnsibleから更新する…

[Ansible] untilを使って非同期処理が完了するまで次のtaskを待つ

例えばK8s環境でpodをデプロイするマニフェストをapplyしてRunningになるまで待つとか。 手作業のときにkubectl get podでRunningになるまで何度も再実行して(もしくは-wつけて)、Runningになったのを目視確認したら次のコマンドを打つ、みたいな作業をAnsib…

[kubectl / oc]コンテキストやクラスタ情報の確認 (コマンドメモ)

OpenShiftだとoc loginやoc project使ってあまり意識しないので簡単にまとめ。。 設定情報 $ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://k8s-master.esxi.jp-z.jp:6443 name: kube…

[kubernetes] kubeadmで構築した後トークン失効後にworkerノードを追加する

kubeadmでクラスタ構築するとworkerノード追加のためのコマンドが表示されて簡単にノード追加できるが、使用するtokenの期限が(デフォルトでは24時間で)切れてしまうため、同じ引数でkubeadm joinしてもこの通り、失敗する。 [zaki@k8s-worker03 ~]$ sudo ku…

[kubectl / oc] get eventなどの一覧表示を時系列で表示してみる(--sort-by)

大抵のオブジェクトには、作成されたタイミングで.metadata.creationTimestampという定義が付与されます。 これを、kubectl/ocの汎用オプションの--sort-byに指定することで、出力の表示順を作成日でソートできます。 使い勝手が良いのは、デフォルトでは時…

rsyslogでリモートへログを送りつける設定

今回は、リモートのrsyslogへログを送りつける設定について。 (図の左側のrsyslogの設定です) 対向のrsyslog(図の右側)は前回の記事の、リモートからログの受信を受け付けるrsyslogの設定が入ってる前提 zaki-hmkc.hatenablog.com 基本 実は/etc/rsyslog.con…

[Python] オフライン環境でpipする

インターネットに繋がらないホストでpip installするには、パッケージファイル指定インストールかローカルPyPIサーバを用意する。 普通にやっても [zaki@centos1 ~]$ pip install pypdf2 Collecting pypdf2 Retrying (Retry(total=4, connect=None, read=Non…

yumdownloaderを使ってインストール済みのrpmパッケージファイルをダウンロードする

既にインストール済みのパッケージだと [root@manager rpms]# yum install --downloadonly --downloaddir=. python2-pip 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.4 kB 00:00 * base: ftp-…

yum updateするときに特定のパッケージを更新対象外にする

色んな事情でyumでインストールした特定パッケージのバージョンを固定したい(アップデートしたくない)場合の設定について。 環境 お題 準備 epelを追加 updateを確認 除外設定 (a) --excludeオプションで指定 (b) /etc/yum.conf に設定 うっかりアップデート…

既存のGitLab CE on Dockerに、Runnerコンテナも追加してCI/CD環境をつくる

Dockerで動かしてるGitLab CEにGitLab Runnerもコンテナで追加して、GitLab CE本体とRunnerを同じDocker上(別コンテナ)で動かして、初めてのGitLab Runnerお試し。 構成の概要としてはこんな感じ。 お題 Runnerコンテナの起動 Runnerの設定 GitLab CEでトー…

[oc / kubectl] run --commandを使って何もしないpodや一定時間後に任意のリターンコードで終了するpodをデプロイ

tail -f /dev/nullやsleep,exitを使ってデバッグや動作確認用に。 run実行で作成されるworkloadsリソースについては以下も参照。 zaki-hmkc.hatenablog.com usage runningするだけで何もしないpod 60秒後に実行完了するpod 60秒後にエラーで完了するpod 任意…

Ansibleのyum_repositoryモジュールを使ってyumインストール用のリポジトリを追加する

/etc/yum.repos.d/以下の設定ファイルをAnsibleを使って作成する方法。 ドキュメント yum_repository – Add or remove YUM repositories — Ansible Documentation お題 zaki-hmkc.hatenablog.com このクライアント側のyum設定 playbook --- - hosts: localho…

(コマンドメモ)ssh経由でリモートのファイル一覧をtarする

たまに使うので備忘録 リモートの/home/zaki/work/ansibleをローカルにansible.tar.gzとして固める [zaki@manager-dev ~]$ ls [zaki@manager-dev ~]$ [zaki@manager-dev ~]$ ssh zaki@192.168.0.19 tar cz /home/zaki/work/ansible | cat - > ansible.tar.gz…

パラメタの多いdocker runをdocker-composeを使ってYAMLで定義する(GitLab CE編)

docker runのパラメタが多いと設定変更して再実行しづらかったりメンテが大変なので、YAMLに書いてdocker-composeで実行すれば色々と便利です。 ということで、お題として以下のGitLab CEを起動するdocker runをdocker-composeで動かせるようにしてみます。 …

[OpenShift] buildconfigへのsecret追加はoc set build-secretで可能

こっちのエントリではoc edit使って手動でsecret設定してましたが、oc set build-secretを使ってコマンドでも設定できます。 zaki-hmkc.hatenablog.com helpメッセージを見ればわかるけど、source用の設定以外にもpull/pushのsecret設定があるみたい。 sourc…

[OpenShift]プライベートに立てたGitLab CEのGitリポジトリからS2Iビルドする(OKD / CRC)

GitHubのリポジトリからだったらnew-appで一発で動くんだけど、プライベート環境のオレオレ証明書のGitリポジトリの場合について。 デプロイ対象のアプリ自体は以前Minishift用に作ったこれです。 qiita.com ソース github.com このリポジトリのデータをそっ…

GitLab CEのDockerコンテナイメージを使って、ローカルにGitLab CEをサクッとたてる(https + Container Registry込み)

DockerHubで公開されているGitLab CEのコンテナイメージを使えば、簡単にGitLabをローカルに立てることができます。 GitLab CEをDockerで動かす GitLab CEでコンテナレジストリを動かす はそれぞれ先人たちのブログ記事とか見つかる(ありがとうございます!)…

リモートのLinuxサーバに入れたCodeReady Containersのwebコンソールにsshのポートフォワードを使ってアクセスする

手元のデスクトップPCにCodeReady Containersを入れた場合は、そのPCのブラウザを使えば特に問題ないけど、リモートのCodeReady Containersだと、コンテナ環境はネットワークが異なるので外からはアクセスできない。 CRCが動いているLinuxサーバ上でnatとか…

PowerShellで写真のExifから焦点距離・カメラ・レンズ情報を取得する

追記: カメラのモデル名とレンズも取得(後述) param($file) [void][Reflection.Assembly]::LoadWithPartialName("System.Drawing") $image_exif = New-Object System.Drawing.Bitmap($file) # 35mm換算焦点距離のExif Tagは41989 $flen_values = ($image_exi…

(備忘録)bashのforループ

半年に1回くらいググってるのでいい加減メモしておこ $ for image in `sudo docker images | grep ... | awk '{print $1}'`; do sudo docker push $image; done docker rmiみたいに複数の引数を取れるものはxargs使えばいいけど、そうじゃない場合はforで。 …

(OKD 3.11) logging (Elasticsearch)を16Giより少ないリソース設定でデプロイする

デフォルト設定だとrequestが16Giに設定されるため、RAM16GBのノードへはどうしてもデプロイできず、より大きいサイズのRAMが必要のため、検証環境なんかだとそのスペックを用意するのが難しかったり。。 そこで openshift_logging_es_memory_limit=8Gi 新規…