My RSS Reader

Description about Blog Author


『とことんDevOps』がフリーランスHubに掲載されました

当社の技術ブログ『とことんDevOps』が、レバレジーズ株式会社が運営する情報メディア「フリーランスHub」に掲載されました。 フリーランスHubは、エンジニア・クリエイターに特化した全国のフリーランス案件をまとめて掲載している転職・求人メディアです。2021年のサービス開始以来、案件情報に加えて技術やキャリアに関する読みものも多数展開しており、エンジニア向けの情報発信プラットフォームとして注目されています。 掲載記事では、『とことんDevOps』がDevOpsやCI/CD、IaCなどの分野に関する実践的な技術情報を継続して発信している点や、Docker・GitHub Actionsの活用例、勉強会レポートなど幅広い内容を扱っている点をご紹介いただきました。 今後も現場に根ざした技術情報を発信し続けてまいります。まだご覧になったことのない方は、ぜひこの機会にチェックしてみてください。 ■掲載記事 https://freelance-hub.jp/column/detail/657/ ■フリーランスHub トップページ https://freelance-hub.jp/ ■フリーランスHub 案件一覧ページ https://freelance-hub.jp/project/ [source]

月刊VS Code通信(2025/5月号)

今月も Visual Studio Code の新バージョンがリリースされたので、リリースノートを見ていきましょう。 目次 目次 新バージョンのリリース情報 主なリリース内容 今月のピックアップ エージェントモードの自動修正提案で手戻りゼロへ さらに使いこなすポイント Prompt ファイルを活用して作業を標準化 さらに使いこなすポイント おわりに 新バージョンのリリース情報 Visual Studio Code のバージョン 1.100 がリリースされました。 主なリリース内容 変更点 変更内容 Instructions ファイル機能の強化 コードルールを Markdown で設定し、自動適用や端末間の同期、内容説明の追加が可能に。 Prompt ファイル機能の強化 チャットリクエストを Markdown で作成し、実行モードやツールの指定、即時実行に対応。 エージェントモードの編集速度向上 OpenAI と Anthropic の新しい編集手法に対応し、大規模ファイルでも高速な編集が可能に。 チャットの標準モデルを GPT-4.1 に変更 チャットの標準モデルが順次 GPT-4.1 に切り替わり、モデルスイッチャーで変更も可能に。 #githubRepo ツールによる GitHub 検索 エディタで開いていないリポジトリのコードも、#githubRepo ツールで直接検索可能に。 #extensions ツールによる拡張機能検索 チャットからマーケットプレイスの拡張機能を検索し、結果から直接インストール可能に。 エージェントモードで自動修正提案 編集で生じたエラーを自動検出し、修正提案まで実行可能に。設定で無効化も可能。 インラインチャット V2 の導入(プレビュー) より高度な編集ロジックを採用し、文脈理解と編集精度が向上。軽量な UX への切り替えも可能に。 フローティングウィンドウの新モード追加 フローティングウィンドウにコンパクト表示と「常に手前に表示」モードが追加され、操作性が向上。 その他の詳細なリリース内容については April 2025 (version 1.

Read more...

作業タスクをSQLiteで管理する

今回も小ネタです。 日々の作業タスクの管理って難しいですよね。 インターネットでタスク管理をするためのツールを探せば色々なサービスが提供されていて便利そうだなと思って最初のうちは使うわけですが、気がついたらそれを使うのが億劫になったり使っていたのを忘れてしまったりめんどくさくなったりで、気がついたら使うのをやめてしまう。 結局、その繰り返しになったりします。 ではもう少し簡単なものをということで探しては試すのですが、直感的でないと習慣に根付かず、あっという間に使わなくなってしまったりと大体、いつもそんな感じです。 運用方針 結局のところ、難しすぎたり面倒すぎると気がついたときには使わなくなっているくらい普段の私はものぐさなので、とにかく最低限の機能だけを使ってタスクの管理をする方針にします。 SQLはこの業界に入っていればどこかしらで使うので、慣れておくと便利というメリットはいくらかあると思います。 ざっくりとした使い方 まずはSQLiteのインストールです。OSによって色々な方法があるので、何らかの方法でインストールしてください。 macOSでHomebrewを使っている場合は次でインストールできます。 ちなみに現在、sqliteでもsqlite3でもバージョン3のSQLiteがインストールされます。 % brew install sqlite 次に、わかりやすい名前でデータベースファイルを作成します。 % sqlite3 todo.sqlite3 タスクを管理するためのテーブルをわかりやすい名前で作成します。.mode lineはテーブルの表示の仕方を設定するオプションのうちの一つです。.headers onと.mode listが他のSQLサーバーにおける出力に似ています。 sqlite> CREATE TABLE todo(id integer, date text, summary text, priority integer); sqlite> .headers on sqlite> .mode list タスクを追加します。 インストール済みのSQLite 3は日本語も問題なく使えるようなので、サマリーは日本語で書いておきます。 タスクの終了可否みたいな列もあるとよりそれっぽいですが、列が増えれば増えると私は面倒くさがるような気がするので、終わったら消すくらいの感じで使おうと思います(UPDATEで終了みたいな文字を冒頭に追加して、その日の定時にDELETEする方針でもいいかもしれませんね)。 sqlite> INSERT INTO todo VALUES(1, 20250512, “次の定例に向けた調査”, 1); sqlite> INSERT INTO todo VALUES(2, 20250512, “定例に向けた資料作成”, 1); sqlite> INSERT INTO todo VALUES(3, 20250512, “blogネタ考える”, 2); 表示してみましょう。いい感じです。

Read more...

Docker Desktopの便利なKubernetesオプション

小ネタかつ今更な話題で恐縮です。 Docker Desktopには随分前のリリースから、Kubernetesクラスターを簡単にデプロイする設定が提供されていました。 しかし私はその機能をあえてお勧めせずに、「Docker Desktopをインストールしつつ、kindやminikube CLIを使ってクラスターを構築した方が便利ですよ」と言っていました。 その理由は、かつてのDocker DesktopのKubernetesオプションは特定のバージョンのKubernetesしか構築できなかったためです。クラスターのオン、オフが可能ですが、特にこれといったオプションのカスタマイズができず、特定のバージョンのクラスターしか利用できませんでした。 初めてKubernetesを触る場合はそれでもいいのかもしれませんが、テスト環境としてKubernetesを使うようになると、バージョンごとのテストをしたいシーンとかもあるので、バージョン固定だと辛いのですよね。一方kindやminikubeを使えば、バージョンや構成のカスタマイズも可能ですから。 現在ダウンロードできるDocker DesktopのKubernetesオプションは、二つの方法でKubernetesクラスターをデプロイします。 一つはkubeadmを使う方法。これは特定のバージョンのKubernetesのみデプロイできます。旧来のKubernetesオプションはkubeadmを使っていたのでしょうか。 もう一つはkindを使う方法。こちらはデプロイするKubernetsバージョンを選択できます。 手元のDocker Desktop 4.41.0では「1.21.14-1.33.0」のバージョンのKubernetesのデプロイをサポートしていました。バージョンの他、ノード数も指定してデプロイできます。マルチノードの簡易検証もできそうです。 バージョンとノードの数だけでよければこの機能を使えば、必要なバージョンのKubernetsクラスターをラップトップ上に構築できます。 % kubectl get node NAME STATUS ROLES AGE VERSION desktop-control-plane Ready control-plane 15m v1.33.0 ちなみにこの機能を使ってデプロイする場合、kubeadmやkind CLIをラップトップに入れる必要はありません。 ただ、もう少し細かい構成変更が必要なシーンではkindやminikubeを直接使ってクラスターを構築した方が便利なのかもしれません。 [source]

月刊DevOpsニュース5月号

5月のGWも終わり、4月から環境が変わった人も少しは準備やリフレッシュができた頃ではないでしょうか。 これから季節の変わり目にもなりますので、体調管理も気を引き締めていかないといけませんね。 さて、今月も月が変わりましたので、恒例の月刊DevOpsニュースをお届けします。 クラウド プログラミング 生成AI OS 仮想化/コンテナ セキュリティ その他 クラウド AWS東京リージョンで約1時間続いた障害、原因は主電源と二次電源が遮断されたことが原因。AWSが明らかに www.publickey1.jp [速報]Google Cloudが複数のAIエージェントを連携させる「Agent2Agentプロトコル」を発表。50社以上がサポートを表明 www.publickey1.jp [速報]Google Cloudが「Agent Development Kit」をオープンソースで公開へ。100行以下のコードでMCPやガードレールを備えたエージェントを開発可能 www.publickey1.jp AWS、すべてのリージョンとアベイラビリティゾーンの地理情報を明示へ www.publickey1.jp プログラミング Cloudflare Workers、フルスタックアプリの構築とホスティングが可能に。新たにNext.jsやAngularなどに対応、MySQLへの接続も www.publickey1.jp GitHub、Issueを分割し親子関係を設定できる「Sub-Issues」が正式機能に www.publickey1.jp 「GitHub Copilotコードレビュー」正式リリース。コードのバグや性能劣化要因など基本的なレビューをCopilotが代行、人間のコードレビューを効率化 www.publickey1.jp 生成AI Meta⁠⁠、Llama 4を発表 gihyo.jp OS Ubuntu 25.04の変更点 gihyo.jp 仮想化/コンテナ Docker Model Runner登場、Dockerコンテナと同じように任意の大規模言語モデルをDocker Hubから選んで簡単に導入、実行可能に www.publickey1.jp セキュリティ Cloudflare、シークレットを安全に管理できる「Cloudflare Secrets Store」ベータ公開 www.publickey1.jp その他 CVE Foundationが発足。脆弱性に固有の番号を付与するCVEプログラムの長期的な安定性、独立性を確保 www.publickey1.jp Googleドキュメント⁠⁠、コードブロックの言語サポートを拡大 gihyo.jp [source]

HomebrewのDocker Desktop 4.41.1でのアップグレード失敗を解決した件

今回は小ネタです。 最近のDocker Desktopでいくつか気になる新機能が実装されたので、久しぶりにDocker Desktopを導入しました。 Docker Desktop 4.41.0(190950)を導入した後に数日でパッチリリース4.41.1(191279)がやってきたので、 いつものようにbrew upgrade -gでアップグレードを試していつも通り失敗したので、以前同様のトラブルを解決した時と同じ方法で解決できないか試してみました。 devops-blog.virtualtech.jp 残念ながら、どうやってもダメでした。 % brew uninstall –cask docker % brew install –cask docker ==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-cask/08d802bc32187c338 Already downloaded: /Users/ytooyama/Library/Caches/Homebrew/downloads/a3c946e5d8585e3fd2cfe66e6aa7e1441b07e6e212c6f6142eb1447f56a94e2a–docker.rb ==> Downloading https://desktop.docker.com/mac/main/amd64/190950/Docker.dmg Already downloaded: /Users/ytooyama/Library/Caches/Homebrew/downloads/a53ee96c8bfa1d5c79f295058a96fe77b5693de2eee283d4884d6e9ed3d3ce23–Docker.dmg ==> Installing Cask docker ==> Moving App ‘Docker.app’ to ‘/Applications/Docker.app’ ==> Linking Binary ‘docker-compose.zsh-completion’ to ‘/usr/local/share/zsh/site-functions ==> Linking Binary ‘docker-compose.fish-completion’ to ‘/usr/local/share/fish/vendor_compl ==> Unlinking Binary ‘/usr/local/share/fish/vendor_completions.d/docker-compose.fish’ ==> Unlinking Binary ‘/usr/local/share/zsh/site-functions/_docker-compose’ ==> Backing App ‘Docker.app’ up to ‘/usr/local/Caskroom/docker/4.

Read more...

SDKMANのバージョン管理について調べてみた

前回の記事でも説明したように、SDKMANはJava自身やJavaベースのSDKのパッケージ管理ツールです。 sdkman.io 私は普段Macのソフトウェア管理にHomebrewを使っており、Homebrewでも対象となるソフトウェアのパッケージ管理はできるのですが、 特定のバージョンのJavaが必要なものの、Homebrewではそのバージョンの利用が厳しかったため、一部についてはHomebrewからこちらに変えました。 その辺は前の記事で書いています。 devops-blog.virtualtech.jp そういえば前の記事では概要やインストール方法までしか書いていなかったのを思い出したため、日頃のメンテナンスはどうするのだろうと思い、調べてみました。 SDKMANのアップグレード SDKMAN自身のアップデートも定期的に必要ですよね。そんな場合もコマンド一個で済むので簡単でした。 % sdk selfupdate Updating SDKMAN… Installing script cli archive… * Downloading… ######################################################################## 100.0% * Checking archive integrity… * Extracting archive… * Copying archive contents… * Cleaning up… Installing native cli archive… * Downloading… ######################################################################## 100.0% * Checking archive integrity… * Extracting archive… * Copying archive contents… * Cleaning up… Updating platform file… Updating config file… sdkman_auto_answer=false sdkman_insecure_ssl=false sdkman_curl_connect_timeout=7 sdkman_curl_max_time=10 sdkman_beta_channel=false sdkman_debug_mode=false sdkman_colour_enable=true sdkman_auto_env=false sdkman_checksum_enable=true sdkman_native_enable=true sdkman_selfupdate_feature=true sdkman_auto_complete=true

Read more...

helmとhelm templateについての気づき 最終回 csplitを使ったマニフェストの分割

次にcsplitを使ったマニフェストの分割について試しました。 普段使いの環境はmacOSなのですが、csplitコマンドがインストールされていました。 どうやらHomebrewを使い始めるときにインストールする、コマンドラインツールに含まれるようです。 ChatGPTさんは次のように実行すればうまくいくと提示してくれました。 csplit -s -z -f manifest_ -b “%03d.yaml” hogehuga-myapp-manifests.yaml ‘/^—$/’ ‘{*}’ ところが実行すると、csplit: illegal option -- zというエラーが表示されます。 それに対して、次のような回答がありました。 ああ、そうなんです!💡 macOS に入っている csplit は BSD版 で、-z オプション(空ファイルを削除)は GNU版のみ対応 なんです。 なので csplit: illegal option – z のエラーが出ちゃいます。 そのあと、解決策として-zオプションを使わない方法と、GNU版 csplitを使う方法が例示されました。 なるべく余計なものをインストールしたくないので、最初の案を採用しました。 csplit -s -f manifest_ -b “%03d.yaml” hogehuga-myapp-manifests.yaml ‘/^—$/’ ‘{*}’ find . -name ‘manifest_*.yaml’ -size 0 -delete ところが、一つ目のコマンドを実行したタイミングでcsplit: illegal option -- bというエラーになりました。 それに対して、次のような回答がありました。 そうなんです、鋭い指摘ありがとうございます!💡 macOS の標準 csplit(= BSD版)は実は かなりオプションが少ない です。 -b(ファイル名の書式指定)も -z(空ファイル削除)も GNU版限定機能なんです。

Read more...

helmとhelm templateについての気づき 第二回 yqを使ったマニフェストの分割

さていよいよ本題に入るのですが、この作成されたマニフェストを見てみると、複数のYAML形式で書かれたマニフェストが合体しているようなファイルになっています。 $ helm template mywordpress ./wordpress -f ./values.yaml > mywp-manifests.yaml ものすごく長いファイルになっており、可読性は良くないですよね。 幸いにもこの方法で生成されたマニフェストは---区切りでそれぞれ記述されていますので、この辺りで切り離せば複数のファイルに分割できそうです。 早速ChatGPTやGoogle Geminiにその方法を聞いてみました。 おおよそどちらも同じような回答だったので、以下はChatGPTを使った場合で説明します。 まず、ChatGPTは二つの方法を提示しました。 一つはcsplitを使う方法。Windowsの場合はWSLなどで環境を整える必要はありますが、LinuxやmacOSでは標準で使えるコマンドが用意されています。 もう一つはyqというツールを使う方法があるようです。jqはJsonに使うのに対し、yqはYAMLに使うみたいなものです。 yqは使ったことがなかったので、yqを使って試そうとしました。 ところがうまくいきません。 $ pipx install yq $ yq eval-all ‘splitDoc’ mywp-manifests.yaml \ | awk ‘BEGIN{n=0;}{if(/^—/){n++} print > sprintf(“manifest_%03d.yaml”, n)}’ yq: error: argument files: can’t open ‘splitDoc’: [Errno 2] No such file or directory: ‘splitDoc’ そこで再度ChatGPTに聞いてみると、これを実行するにはyqのバージョン4が必要であることがわかりました。Pythonのyqモジュールはバージョン3の実装のものが提供されるらしく、そちらが必要だと。 https://github.com/mikefarah/yq/ macOSを使っているので、次のようにバージョン3のyqをアンインストールして、バージョン4のyqをインストールしなおしました。 $ pipx install yq $ brew install yq 今度はコマンドが通ったのですが何かがおかしいです。一つのファイルしかつくられないではありませんか。 $ yq eval ‘splitDoc’ mywp-manifests.yaml \ | awk ‘BEGIN{n=0;}{if(/^—/){n++} print > sprintf(“manifest_%03d.

Read more...

helmとhelm templateについての気づき 第一回 helmについておさらい

今更な話題ですが、Kubernetesにはhelmという便利なアプリケーションインストーラーがあります。 例えばこのように実行すると、Kubernetesにあらかじめ決められた設定でアプリケーションを展開できます。 $ helm install 例えば次のようにNamespaceを指定してアプリケーションをデプロイできますし、2行目のようにイメージタグを指定してデプロイしたり、設定する項目が多ければファイルに書いた内容でデプロイなんてことができます。Kubernetesでhelmは普通に使われていると思います。 $ helm install test stable/prometheus –namespace helm-test $ helm install –name my-release –namespace helm-test my-chart –set image.tag=v1.0.0 $ helm install -f myvalues.yaml myredis ./redis 便利なHelmですが、Helmにはhelm templateというコマンドがあって、Helm templateでカスタマイズした状態のマニフェストをファイルに出力することができるという機能があります。 言葉では伝わりにくいので実行例を見ながら解説します。 次のコマンドは./myapp-helmというディレクトリーにあるHelm chartにmyapp/values.yamlに書かれている設定に上書きしています。これをリダイレクトしてhogehuga-myapp-manifests.yamlという名前のファイルに書き込んでいます。 $ helm template myapp-helm ./myapp-helm -f myapp/values.yaml > hogehuga-myapp-manifests.yaml ちょっと実践してみましょう。これでwordpressのHelm chartをリポジトリーからダウンロードできます。ファイルはtar.gz形式のアーカイブがダウンロードされます。 $ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm update $ helm pull bitnami/wordpress 展開すると、いくつかのファイルが見つかると思います。 values.yamlがこのchartのデフォルトが書かれているファイルで、これをコピーしてカスタマイズして任意の設定でアプリケーションをデプロイできるのですが、今回はちょっとだけ書き換えてhelm templateコマンドを実行してみましょう。 $ tar -xzvf wordpress-24.2.2.tgz $ ls wordpress Chart.

Read more...
Previous Page 2 of 3 Next Page