タグ

*infraと*softwareに関するsh19910711のブックマーク (276)

  • ヤマハルーターの設定をAnsible化してみる

    ヤマハルーターの設定を変更する方法はいくつかあります。 Web GUI TelnetやSSHでのコマンド実行 Ansible これらの中では、コマンド実行によるものがメジャーで、私も実行するコマンドを適当なテキストファイルに保存して管理していました。 これでも不便はないのですが、とある事情で直近ルーターの設定を頻繁に調整することがあったので、気になっていたAnsibleでの設定方法を試してみました。 環境 コントロールノード ansible (2.12.4) ターゲットノード RTX830 (Rev.15.02.22) [1] やったこと 公式ドキュメントの手順に沿って作業を進め、IPoEの設定を自動化してみます。 楽天ひかりを利用しているので、PPPoEの接続も提供されていますが、IPoEでの接続を前提とします。 事前準備 ヤマハが提供しているAnsibleモジュールはコントロールノード

    ヤマハルーターの設定をAnsible化してみる
    sh19910711
    sh19910711 2024/06/07
    "Ansible化によるメリットは感じつつも、ヤマハルーターはconfigのインポートやコマンドを流しこむだけで設定を完結できる / コマンドをコピペで流し込んだ方が効率はいい" 2022
  • AWSでKubernetes The Hard Wayをやってみた - Qiita

    概要 https://github.com/kelseyhightower/kubernetes-the-hard-way 2024/4/6に約3年ぶりのアップデートがあった。 以前はGCP環境が前提の手順となっていたが、そのアップデートでクラウドプロバイダ問わずの手順に変わっていたのでAWS環境で実践してみた。 なおOSはDebian 12 (bookworm)が前提となっていたが、わずかでも独自性を出すべくAmazon Linux 2023を使用している。 結果 手順が十分以上に整備されていることもあり、完走するだけならほぼコマンドをコピペするだけで事足りた。 そのため過程について記述することは特段なかったが、備忘のため2点だけ注意点を書き残す。 ①configs/encryption-config.yamlが存在しない 2024/6/6時点ではconfigs/encryption-c

    AWSでKubernetes The Hard Wayをやってみた - Qiita
    sh19910711
    sh19910711 2024/06/06
    "Kubernetes The Hard Way: 約3年ぶりのアップデート + 以前はGCP環境が前提の手順となっていたが、そのアップデートでクラウドプロバイダ問わずの手順に変わっていた / 完走するだけならほぼコマンドをコピペするだけ"
  • Jsonnet で Kubernetes マニフェストを快適に書く

    Kubernetes マニフェストを書くとき、非常にしばしば複数の環境(典型的には production, staging, development)ごとに一部の設定だけ異なる他はほぼ同一の内容のマニフェストを用意しなければならない、ということがあります。このようなとき、繰り返し部分と差分を分ける手段としては複数の選択肢があります。なかでも、kustomize を使って、ベースとなるマニフェストを用意したうえで各環境に応じた差分を適用するためのパッチをあてる、というのがよく選ばれる選択肢でしょうか。この記事では、繰り返しを避けるという目的を達成するのに、kustomize ではなく Google 開発の設定記述用言語 Jsonnet を使うという選択肢もあるということをご紹介します。 Jsonnet には普通のプログラミング言語にはない独特な機能があり、使いこなすにはコツが必要です。この記

    Jsonnet で Kubernetes マニフェストを快適に書く
    sh19910711
    sh19910711 2024/06/05
    "Jsonnet: +演算子をオブジェクト2つに適用してオブジェクトのマージができ + 同じキーがある場合は右側が優先 / $ という特殊な変数のようなものがあり、それを含むトップレベルのオブジェクトを指す" 2022
  • Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!

    「 JAWS-UG CDK支部 #14」での登壇資料です。 イベントURL: https://jawsug-cdk.connpass.com/event/317935/

    Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!
    sh19910711
    sh19910711 2024/05/23
    "Argo Workflows: 単体の利用ではYAML特有の悩み / cdk8s-argoworkflow: 補完機能で快適 + 繰り返し処理でコード量をグッと減らせる / スナップショットテストと生成AIで簡単且つ安全にリファクタリング"
  • terraform plan 結果の検証を自動化するぞ! with Conftest / Testing terraform plan with Conftest

    下記LT会にて発表した資料です。 自動化大好きエンジニアLT会 - vol.5 - connpass https://rakus.connpass.com/event/224448/ スライド内リンク一覧 --- 8ページ - Conftest https://www.conftest.dev/ - Open Policy Agent https://www.openpolicyagent.org/ 12ページ - hashicorp/terraform-json https://github.com/hashicorp/terraform-json 20ページ - Flatten nested JSON using jq https://stackoverflow.com/questions/37540717/flatten-nested-json-using-jq/37555908#3

    terraform plan 結果の検証を自動化するぞ! with Conftest / Testing terraform plan with Conftest
    sh19910711
    sh19910711 2024/05/12
    "Conftest (Open Policy Agent): Terraformに限らずあらゆる構造化された内容をテストできる + ポリシー自体のテストも可能 / plan結果のjsonは `resource_changes` 以外にもさまざまな情報を持っている" 2021
  • 構成図を『描く』から『書く』へ:DiagramsでAWS構成図かいてみる - Qiita

    やること "Diagram as Code"ことDiagramsで、AWS構成図をコードでかいてみる Diagramsとは Diagramsは、Pythonモジュール Diagrams使うにはGraphvizも必要 Pythonのコードでクラウドシステムアーキテクチャを描画できる サイトはここ https://diagrams.mingrammer.com/ サイトにあるDiagramsの説明は、英語だけど分量が少ないので一読すべし!(自動翻訳で十分理解できる) このように、構成図をPythonのコードで書ける。このコードを、Pythonスクリプトとして実行すると、構成図が画像として出力される。 良いところ 構成図をコード化できる コード編集で作図編集できるので、画像修正より楽 コードなので、CloudFormationのコードとまとめてGitで管理できる AWS以外のアイコンも用意されて

    構成図を『描く』から『書く』へ:DiagramsでAWS構成図かいてみる - Qiita
    sh19910711
    sh19910711 2024/05/09
    "Diagrams: 構成図をコード化できる + コードなのでCloudFormationのコードとまとめてGitで管理できる + AWS以外のアイコンも用意されている / 代用アイコンを決めておけばチーム内で共有する構成図として十分に使えそう" 2020
  • Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita

    はじめに 汎用ポリシーエンジンである Open Policy Agent では、WebAssembly 形式でポリシーを配布可能です。記事では、WebAssembly 形式で出力された Open Policy Agent のポリシーを Web ブラウザで評価することを試してみた内容を紹介します。 Open Policy Agent とは Open Policy Agent (OPA) は OSS の軽量で汎用的なポリシーエンジンです。開発時や運用時におけるルール(ポリシー)を事前に定義することで、ポリシーに反する情報を検出できます。OPA はポリシーを定義するための宣言型言語 Rego と、ポリシー評価のためのシンプルな API を提供しています。 WebAssembly とは WebAssembly とは、 Web ブラウザ上で実行可能なバイナリコードの仕様です。C/C++, Rust

    Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita
    sh19910711
    sh19910711 2024/05/08
    "OPA; Open Policy Agent: 開発時や運用時におけるルールを事前に定義 + ポリシーを WebAssembly 形式で出力する機能があり + さまざまなプラットフォーム上で OPA のポリシーを評価できる" 2021
  • ArgoCD の Config Management Plugin (CMP)を理解し、Plugin でマニフェストの変数置換を行う - kencharosの日記

    概要 前職の同僚がずっと、PullRequest ごとにプレビュー環境でアプリケーションをデプロイしたいと言っていた。 確かにそれができれば便利ではあるけど、たとえ k8s の力を借りても実現するまでの手順は多く、遠い夢かと思っていた。 でも ArgoCD で頑張ればその夢は近くなるかもしれない。 これは、ArgoCDの Config Management Plugin (CMP) と呼ばれる機能を使って、動的なマニフェスト生成を行い、さらにPullRequestごとの固有の情報をマニフェストに柔軟に埋め込むための仕組みを考えてみたという話。 想定読者 k8s にある程度詳しい ArgoCD にもある程度詳しい ArgoCD の ApplicationSet や Generator の機能を知っている、あるいは調べればわかる方 参考資料 GitランチやPullRequestごとにプレビュ

    ArgoCD の Config Management Plugin (CMP)を理解し、Plugin でマニフェストの変数置換を行う - kencharosの日記
    sh19910711
    sh19910711 2024/05/08
    "PullRequestごとの固有の情報をマニフェストに柔軟に埋め込む / ArgoCD: kustomize や Helm などのビルドに対応 + Plugin を使うことで任意の処理でマニフェストのビルドを行うことができる" 2022
  • Proxy-Wasm: エッジでのWasm研究開発最先端

    @ Infra Study Meetup #8 「インフラと研究開発」 https://forkwell.connpass.com/event/193256/

    Proxy-Wasm: エッジでのWasm研究開発最先端
    sh19910711
    sh19910711 2024/05/06
    "Wasm = ブラウザと言う時代は終わり + VMとして優秀&コンパイラ基盤->ブラウザの外でも使いたい / Proxy-Wasm: WasmのVMをEnvoyの中で動かしてWasmのプログラムで拡張 + Envoy/Wasm VM間のABIだけ決めれば任意の言語で拡張できる" 2020
  • Kubernetes Contributor Awards 2023を受賞した/今年のContribution振り返り

    こんにちは。 しずかなインターネットをきっかけに一年近く”ブログを書く”と言うことを忘れていたことに気がつきました。 今日は、タイトルの通りContributor Awardの話と、一年のKubernetes Contributionの振り返りをしようかと思います。 書いてみると、この一年短いようで長かった(?)のだと実感しました。 執筆段階での過去一年のKubernetesレポジトリへのcontribution数は2042だったようです(ref)。 これはKubernetesの全Contributorの内で9位に当たります。 趣味にしてはやり過ぎですね、この順位を見てドン引きしました。 これによって、会社別ランキングを見ると、MercariのKubernetesへの貢献数は全体9位(Independent 入れるなら10位)になっています(ref)。 いや、これ採用の宣伝か何かで使った方

    Kubernetes Contributor Awards 2023を受賞した/今年のContribution振り返り
    sh19910711
    sh19910711 2024/05/05
    "大学生の時になんとなく始めたKubernetesへの貢献 / 過去一年のKubernetesレポジトリへのcontribution数は2042だったようです + 全Contributorの内で9位 / 会社別ランキングを見ると、MercariのKubernetesへの貢献数は全体9位" 2023
  • [Proxmox VE] テンプレートとクローンとCloud-Initを使ってVMをサクサクシュッと生やす (Fedora / Ubuntu) - zaki work log

    Proxmox VEには、VMのテンプレート化とクローン機能があり、さらにCloud-Initを使って初期設定込みで簡単にVMをプロビジョニングできる機能がある。 もうすぐFedora40やUbuntu 24.04がリリースされそうなので、その時にサラサラとテンプレート作成できるように、この機能を使う準備についておさらい。 といっても、ドキュメントの通り順番にコマンド実行していけば作成できる。 pve.proxmox.com ちなみにここではUbuntuの情報はあふれてるので、ここではFedora 40 betaでお試し。 (Ubuntuの場合も参考程度に記載してる) テンプレートの作成 ベースになるCloudイメージの入手 テンプレート元にするVM作成 イメージのセット Cloud-Init CD-ROMドライブの追加 テンプレートへの変換 テンプレートの設定 VM設定 Cloud-In

    [Proxmox VE] テンプレートとクローンとCloud-Initを使ってVMをサクサクシュッと生やす (Fedora / Ubuntu) - zaki work log
    sh19910711
    sh19910711 2024/04/29
    "Proxmox VE: VMのテンプレート化とクローン機能 + Cloud-Initを使って初期設定込みで簡単にVMをプロビジョニング + 使える状態のVMを秒で作成できる / Cloudイメージを使ったVM + Fedora Cloud 40 QEMU (qcow2形式)をダウンロード"
  • [アップデート]TerraformのProviderが関数を定義できるようになりました | DevelopersIO

    2024/4/10にGAになったTerraformのVersion1.8にて、Providerが関数を定義できるようになりました。各Providerの開発者はそのProvider固有の問題解決に特化した関数を作成できるようになりました。 エントリでは新関数たちを触ってみてレポートします。 Providerって? Terraformをあまりご存じない方向けに説明すると、ProviderはTerraformのプラグインです。実はTerraform単体ではAWSのリソースなどをプロビジョニングすることはできません。AWSリソースをプロビジョニングしたい場合はAWS provider、Google Cloudのリソースをプロビジョニングしたい場合はGoogle Cloud providerなどといったように、対応するproviderと組み合わせてTerraformを使うことではじめてリソースをプ

    [アップデート]TerraformのProviderが関数を定義できるようになりました | DevelopersIO
    sh19910711
    sh19910711 2024/04/20
    "Terraform: 1.8にて、Providerが関数を定義できるように / arn_parse: ARNの各部品を取得する関数 + 以下の例ではECRリポジトリのARNからアカウントIDを取得 / ARNをパースすることを目的としたdata sourceが既に存在します。aws_arnです"
  • driftctlによるIaC化推進に向けた取り組み - Safie Engineers' Blog!

    こんにちは。セーフィー株式会社 バックエンドエンジニアの村田 (@naofumimurata)です。 この記事はセーフィー株式会社 Advent Calendar 2022 の12月15日の記事です! 記事ではセーフィーにおけるdriftctlというツールを活用したIaC化推進に向けた取り組みについてご紹介したいと思います。 セーフィーのインフラ環境と課題 driftctlとは driftctlの使い方 準備 スキャンの実行 出力形式の変更 .driftignoreファイルによるスキャン対象からの除外 GitHub Actions による定期実行 ワークフローの解説 取り組みの結果 driftctlを使ってみて 良い点 カバレッジが出せる 「何をコード管理しないか」をコード管理できる 気をつける必要がある点 リソースが多い環境だとrate limit 超過のエラーで失敗する まとめ セー

    driftctlによるIaC化推進に向けた取り組み - Safie Engineers' Blog!
    sh19910711
    sh19910711 2024/04/20
    "driftctl: リソース全体のうちどのくらいIaC化できているかというカバレッジの値を出してくれる + 改善の状況を数値として確認できるのでとても便利 / 「何をコード管理しないか」をコード管理できる" 2022
  • TerraformのStateやModuleに関する設計 - tom-256.log

    概要 名前付け 抽象度 インフラアーキテクチャ図 チーム 認証情報 変更(デプロイ)のライフサイクル DRYの誤用 コードの検索性 モジュール間の依存 アプリケーションレイヤーとの違い まとめ 概要 TerraformのStateやModuleに関する設計に関する考慮点をざっくり書く 名前付け ユビキタス言語とディレクトリ名や変数名を合わせて認知不可を下げる リソース名でなく役割・機能ベースのディレクトリ名にして認知不可を下げる プロダクトのコードネームはユビキタス言語なのでディレクトリ名にしても問題ない ModuleやStateのREADME.mdを書く https://github.com/terraform-docs/terraform-docs を使う うまく説明が書けない場合は設計に問題がある可能性がある チームメンバーが利用できるように考慮する いつどのようなときに使えばいいか

    TerraformのStateやModuleに関する設計 - tom-256.log
    sh19910711
    sh19910711 2024/02/25
    "リソース名でなく役割・機能ベースのディレクトリ名にして認知不可を下げる / README\.mdを書く: うまく説明が書けない場合は設計に問題がある / 抽象度が低いModuleを作らない(例:modules/s3など)"
  • IaC 提供の難しさ: API で宣言的な管理を実現できるか?という視点 - Diary of a Perpetual Student

    MackerelTerraform Provider を提供していて、監視ルールや通知チャンネル、ダッシュボードなどの設定が Terraform で記述・管理できるようになっています。 今回は Terraform Provider 提供者の目線から、サービスを IaC で管理できるように対応する難しさを紹介します。 公開 API で宣言的な管理を実現できるか? MackerelTerraform Provider は、内部的に公開 API を呼ぶことで設定の管理を実現しています。よって、公開 API を新たに増やしたり改修したりする場合には、IaC による宣言的な構成・設定管理を API を使って行えるかどうかを気にする必要があります。 具体例: ホワイトリストと、ホワイトリストに自動で追加するフラグの両方を IaC で管理する 例として、やや抽象的な表現にはなってしまいますが

    IaC 提供の難しさ: API で宣言的な管理を実現できるか?という視点 - Diary of a Perpetual Student
    sh19910711
    sh19910711 2024/02/21
    "Terraform Provider 提供者の目線から、サービスを IaC で管理できるように対応する難しさ / IaC を提供する場合、一般的な Web サービスとはまた違った視点でもどんな API にするか気を遣う必要がある" / 2023
  • 人間によるKubernetesリソース最適化の”諦め” そこに見るリクガメの可能性

    Kubernetes活用の手引き 私たちの基盤構築・運用事例 Lunch LT https://findy.connpass.com/event/307447/

    人間によるKubernetesリソース最適化の”諦め” そこに見るリクガメの可能性
    sh19910711
    sh19910711 2024/01/27
    "リソース最適化にはKubernetesに関わる深い知識が必要 + サービスが動き続ける限り、状況は変化し得る / これからはリクガメに任せる時代 / Workloadの振る舞いを記録し、Podの数、resource request/limitの全てをいい感じに調節"
  • Terraform 1.7 から import ブロックで for_each が使えるようになった

    Terraform 1.7 がリリースされました 🎉 Terraform 1.7 also includes an enhancement for config-driven import: the ability to expand import blocks using for_each loops. import ブロックで for_each が使えるようになったとのことなので試してみます。

    Terraform 1.7 から import ブロックで for_each が使えるようになった
    sh19910711
    sh19910711 2024/01/18
    おお、モックも気になる / "Terraform 1.7 がリリースされました / ちなみに他にも Terraform 1.7 ではテストでモックが使えるようになったり removed ブロックが追加されたりと、様々な機能追加や改善が含まれています"
  • CDKTFでconfig-driven importを試してみる | DevelopersIO

    CDKTF 0.19でconfig-driven importがサポートされたので、試してみました。 CDKTF 0.19 adds support for config-driven import and refactoring config-driven importとは Terraform 1.5で追加された機能です。 従来からTerraformでは、terraform importコマンドで既存リソースをTerraformの構成管理下に置くことができました。 しかし、このコマンドはリソースを1つずつインポートする必要がある・結果をプレビューすることができない等制限もありました。 config-driven importでは、importブロックを利用することで上記の制限をなくし、インポート操作をコードで定義できるようになりました。 import { # ID of the clou

    CDKTFでconfig-driven importを試してみる | DevelopersIO
    sh19910711
    sh19910711 2023/10/23
    "config-driven importでは、importブロックを利用することで上記の制限をなくし、インポート操作をコードで定義できるように / 今回のアップデートでCDKTFでもconfig-driven importがサポートされました (CDKTF 0.19)"
  • terraform importしてplan差分がない=環境が再現できているといつから錯覚していた? - Qiita

    はじめに 先日、Terraform v1.5.0がリリースされました v1.5の目玉はなんと言っても import ブロックと terraform plan -generate-config-out によるtfファイルの生成ですよね〜。これで既存のリソースもimportし放題だと巷で話題です。 ところで、Terraformの特徴として、「インフラをコード化することで環境が再現できる」などと一般的に謳われています。また、Terraformには「既存リソースをimportする機能」があります。別にそれぞれ単独では間違ってはないのですが、これらを組み合わせて、「既存リソースをimportしてplan差分が出なければ元の環境を再現できる」と言えるのでしょうか? 残念ながら現実にはそうとも言い切れません。なんとなく経験上わかってる人もいるとは思いますが、意外と気づいてない人も多そうな気がしたので、ち

    terraform importしてplan差分がない=環境が再現できているといつから錯覚していた? - Qiita
    sh19910711
    sh19910711 2023/08/25
    "手で作ってしまったリソースは可能な限りimportしてカバレッジを上げたほうがよい / ただimportしてplan差分がないことを確認しただけでは、環境が完全に再現できるわけではないという限界も認識しておくべき"
  • Google Cloud のマネージド Terraform、 Infrastructure Manager 登場!

    こんにちは。クラウドエースの阿部です。 今回はひっそりと一般提供されていた Infrastructure Manager について紹介したいと思います。 Infrastructure Manager とは Infrastructure Manager (以降、Infra Manager と表記) は、 Google Cloud におけるリソースのデプロイや管理を IaC で自動化するためのマネージドサービスです。 内部では Terraform と Cloud Build を使用してリソースの管理を行っています。 Infra Manager の特徴 特徴としては以下の通りです。 GitHub 等と連携した CD (継続的デリバリ) の構築を簡単に実装できます。Cloud Build で同じ事をやる場合は、 cloudbuild.yaml で CI/CD パイプライン設定が必要です。また、ロー

    Google Cloud のマネージド Terraform、 Infrastructure Manager 登場!
    sh19910711
    sh19910711 2023/08/25
    "GitHub 等と連携した CD (継続的デリバリ) の構築を簡単に実装できます / state の保存先は利用者から見えない場所 + 実行ログを参照すると、自動的に http backend 設定を生成して、 state を保存しているようです"