とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど

開催予定の勉強会

読者登録と各種SNSのフォローもよろしくお願いいたします。

マカーの方限定、ついついミーティングに参加し忘れてしまう方に朗報です。

コロナ禍でテレワークが浸透し、ミーティングは会議室に集まるものから、オンラインにシフトしていきました。会議室に集まるときは同僚が声をかけてくれたり、他の人が移動し始めたのを見計らって付いて行けばそうそう参加し忘れるということもなかったので…

terraform-docsでドキュメントの自動生成

IaCでインフラを管理していると、構築手順書が不要になります。構築手順がコードで表現されているからです。では、一切のドキュメントが不要かというと、そんなことはありません。設定値の説明などは必要になるので、使い方のドキュメントは必要になります。…

*rcファイルを整理する

※小ネタです。 昼休みにふと.zshrcを開いてしまいました。乱雑に設定が記述されていてモヤモヤしています。 整理するなら簡単なところでファイル分割、コメントでブロックを作る、などでしょうか。ファイル分割は数が増えると見づらいですし、コメントでブロ…

楽々ERDレッスンを読みました。

内製ツールの開発で、弊社スタッフが「楽々ERDレッスン」という書籍を購入していました。 楽々ERDレッスン (CodeZine BOOKS)作者:(株)スターロジック 羽生 章洋翔泳社Amazon 私はOpsエンジニアなので、DBのダンプやリストア、負荷調査なんかはやることがあっ…

AWSとTerraform CloudをOIDCで接続

1月30日にTerraform CloudでDynamic Provider Credentialsがパブリックベータで公開されました。 www.hashicorp.com Dynamic Provider Credentialsって何かと思ったら、Terraform CloudでOpenID Connect(OIDC)を使うための機能の名前みたいですね。要するにO…

macOSでLimaとnerdctlとcontainerd

何個か前の投稿で、Docker Desktopの代替アプリとして「Finch」を紹介しました。 devops-blog.virtualtech.jp Finchはコンテナの実行環境としてLimaでLinux VMを起動します。このVMの中ではcontainerdが動いていて、それを操作するためにnerdctlを使用します…

Docker Desktopの代わりに「Finch」を使ってみる

以前、「Docker Desktopと代替ソフトウェア大集合」という記事が弊社ブログにアップされました。 devops-blog.virtualtech.jp そこで紹介されていた「Finch」というツール、去年の11月末ごろにAWSが公開したのは知っていたんですが、なかなか試せていません…

自宅の電気使用状況をMackerelでモニタリング

最近電気代高いですね。先日北海道電力が32%の電気料金の値上げを申請したらしいです。私は北海道住まいなのでクリティカルヒット。節電意識を持った方がよさそうなので、どれくらい電気を使ってるかモニタリングできるようにしたいと思います。 やりたいこ…

dive式ダイエット

気づかないうちにDockerイメージのサイズが大きくなってることってありますよね。最初は1GB切ってたのに、いつの間にやら1.xxGBに。Dockerfileを見て「あぁ、ここだな」っと気づける人は、そもそもイメージサイズを大きくしないので今回は対象外です。Docker…

tmuxのちょっと便利な使い方

tmuxで色々調べていると、設定方法や始め方、画面分割やセッション維持など、tmuxをフォアグラウンドで実行する方法が主にヒットします。ターミナルマルチプレクサなので正しいのですが、コマンドをバックグラウンドで実行するために使ってみるのはいかがで…

ぼくのてぃーまっくす

ターミナルマルチプレクサ使ってますか?screenやabduco、dtachなど色々あります。最近だとZellijなんていうのも出てきてますね。わたくし、最近はもっぱらtmuxに落ち着いていまして、.tmux.confの設定もここ数年変わってないですし、晒してみようかと思いま…

dsqというツールがおもしろそう

みなさん、SQLは得意ですか?私は苦手です。が、ちょっと面白そうなツールを見つけたので紹介します。 github.com SQLを使ってJSON、CSV、Excelなどからデータを抽出できます。JSONやCSVのパースならyqコマンドでも十分そうですが、SQLで抽出できるというこ…

必修アルゴリズムを読んでみた。

弊社には書籍購入補助の制度があります。少しでも業務に関連していそうなら無制限に買ってもらえます。その制度を利用して「必修アルゴリズム」という本を買ってもらいました。DevOpsには関係ないのですがまあいいでしょう。軽くレビューというか感想という…

AWSのMFAが複数登録できるようになっていたので試してみた

AWS

IAMユーザーのMFAが複数登録できるようになっていたみたいですね、全然気づいていませんでした。 aws.amazon.com 最大で8個まで登録できるようです。普段使いにYubiKeyとバックアップのTOTPを2つくらい登録しておけば概ね困らなそうです。 さっそく設定して…

自宅のインフラ環境をIaCとGitHub Actionsで管理

以前IaCとCircleCIで自宅のインフラ環境を管理する方法を記事にしました。 devops-blog.virtualtech.jp 今回はIaCとGitHub Actionsで管理する方法を書いていきます。 とはいっても、CIの設定を変更していくだけなので、以前の記事から「GitHubの設定」まで終…

KubernetesのNOMINATED NODEについて調べました。

先日、第8回とことんDevOps勉強会でNominated Nodeよくわからんっと言ったら社長が色々調べてくれたので、こちらも再現手順など確認していきます。 とことんDevOps勉強会のイベントレポートは以下 devops-blog.virtualtech.jp NOMINATED NODE??? kubectl get…

minikubeのはじめ方

2022-12-07に「Kubernetes再入門」というタイトルで勉強会に登壇しました。 devops-blog.virtualtech.jp そこで「勉強する環境がほしいが、どのように準備したらよいか」という質問をいただきましたので、ローカルで試す場合の環境の用意なんかを取り上げて…

自宅のインフラ環境をIaCとCircleCIで管理

この記事は、CircleCI Advent Calendar 2022 12日目の記事です。 さて、我が家では一部スマートホーム化が進んでいます。照明のオンオフ、気温や湿度の管理、人の出入りの監視などです。音声やスマホアプリから操作しているので、現在の状態や、なぜそうした…

VHSコマンドがなかなかよさそう

私はよくRedditのr/commandlineというサブレディットを見ています。ここではコマンドラインツールのリリース情報や、こういう時どうしたらいいんだっけ?っという情報が流れてきます。 先日も情報収集のために徘徊しているとVHSというツールを発見しました。…

GCPとArgo CDでかんたんDevOps

前回はAWS上にArgo CDを構築しました。今回はGCPにArgo CDをデプロイしていきたいと思います。 必要なもの Googleアカウント GCPプロジェクト gcloud CLI Terraform Helm kubectl argocd(CLI) 請求先アカウントが設定済みのGCPプロジェクトを用意してくださ…

AWSとArgo CDでかんたんDevOps

AWS EKSにArgo CDをインストールして、かんたんDevOps環境を作ってみます。 必要なもの AWSアカウント Route 53で管理されている実在するドメイン eksctl Helm kubectl argocd(CLI) AWSアカウントは事前に用意しておいてください。 eksctl、Helm、kubectl、a…

aws-auth ConfigMapを安全に更新する

AWS

新しい人が入ってきた時や、誰かが出ていく時など、EKSのaws-auth ConfigMapにIAMユーザーを足したり引いたりすることはよくあると思います。このConfigMap、構文が間違っていても保存できてしまうんですよね。エラーのまま保存してしまうと、そこで管理され…

kube2iamで403

先日、とあるプロジェクトでkube2iamのログを見ていると、以下のようなログを発見しました。 kube2iam-XXXXX kube2iam time="2022-09-26T10:34:03Z" level=info msg="PUT /latest/api/token (403) took 2.837123 ms" req.method=PUT req.path=/latest/api/to…

asdfが便利だったのでanyenvから乗り換えた

anyenv使ってますか?私は使っていました。っというのも最近とある案件でasdfをつかっているのをみて、ちょっと試してみたところ、なかなかよかったのでこちらに乗り換えました。 asdf-vm.com asdfってなんじゃろ? asdfはツールやプログラミング言語のバー…

GitHub Actionsでself-hosted runnerを使ってみる

検証環境 Ubuntu 22.04 Runner追加 docs.github.com GitHubにリポジトリを追加 Settings > Actions > Runnersからランナーを追加 追加する画面にいくと以下のように追加手順が表示されるので、ランナーとなるマシンにSSHログインし実行する config.shを実行…

GitHub ActionsでOIDCを使ってみる

GitHub ActionsがOpenID Connect(OIDC)をサポートしたのは結構前の話なんですが、未だ検証できていませんでした。社内でもSecretにクレデンシャル持つのはそろそろ辞めたいよねっという話が出ていますので、検証がてら記録を残しておきます。 ゴール GitHub …

EKS 1.21で有効になったBoundServiceAccountTokenVolumeの話

EKS 1.21というか、Kubernetes 1.21以降で有効になったBoundServiceAccountTokenVolumeについての話ですね。 docs.aws.amazon.com 簡単にいうと、Kubernetes 1.21以前ではトークンに有効期限がなかったのに対し、1.21以降は1時間の制限がつきますよっという…

HelmチャートをGitHub Pagesで公開する

過去の記事でHelmの使い方やHelmチャートの作り方についてまとめました。今回はGitHub Pagesで公開する方法をまとめます。 前準備 今回使うHelmチャートはHelmチャートの作り方で作ったものを使います。もしまだ作っていなかったり、手元にないようでしたら…

Helmチャートを作る

前回はHelmの使い方について軽くまとめました。 今回はHelmチャートの作り方について、まとめていきたいと思います。 雛形を作成 1から手作りするとなかなか面倒なのでコマンドから雛形を作ります。Helmコマンドには雛形を作るためのhelm createコマンドが用…

Helmで自動ロールアウト

Helmはデプロイの仕様自体に変更がない場合、古い状態のまま動き続けます。これではシークレットやConfigMapsのみ更新した場合、同じタグを指定している場合にポッドの更新ができなくて困りますよね。公式ドキュメントにもこのことが取り上げられていました…