タグ

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

  • ヤマハルーターの設定を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
  • ポータブルなCI/CD Daggerを試してみる - What is it, naokirin?

    的に継続的な開発を行っていく上で、CI/CDは避けて通れなくなっています。CI/CDといえば、これまでも様々なツールやサービスがありました。 クラウドの発展やインフラ環境の変化などもあり、個々の特性を生かした機能やサポートなどを持つツールやサービスが生まれてきています。 OSSで基的に自身で環境を構築する汎用ツール:Jenkinsなど CI/CD専用のSaaS:Circle CI、Travis CI、AWS Codeシリーズ、Google Cloud DevOps、GitHub Actionsなど クラウドやKubernetes環境向けのCD:Spinnakerなど アプリケーション実行環境とCDがセットになったPaaS:GAE、AWS Beanstalkなど 一方、この各ツールやサービス間で移行することになると、複雑になりがちな設定の書き換えや、特定ツールのサポートやプラグインに乗

    ポータブルなCI/CD Daggerを試してみる - What is it, naokirin?
    sh19910711
    sh19910711 2024/06/06
    "ポータブルなCI/CDの抽象レイヤーとして、Dockerの開発者が新たにDaggerというプロダクトを作成 / 特徴的なのは、CIのConfigurationをCUEで記載する点 / 覚えることはYAMLやJSONに他に比べるとそこそこ多い印象" 2022
  • GitLab Triageでプロジェクトの棚卸しを自動化する

    記事は 富士通クラウドテクノロジーズ Advent Calendar 2021 の2日目の記事です。 1日目は@ktakaaki のTwilioとWindows PowerShellを使って連続で電話を掛けたいでした。Twilioはシステムから電話を掛ける際に非常に便利なサービスで、様々な場面でよく使われますが、PowerShellからでも簡単にコールできるんですね。 さて、富士通クラウドテクノロジーズ社では 全社員が利用するプロジェクト管理ツールとしてGitLabを採用 しています。各チームそれぞれがGitLabを活用しており、様々なGitLab活用ノウハウがあるのですが、今回は最近導入した GitLab Triage を紹介したいと思います。 GitLab Triageとは GitLab Triage はGitLabプロジェクト上のIssue/Merge Request/Epicを

    GitLab Triageでプロジェクトの棚卸しを自動化する
    sh19910711
    sh19910711 2024/05/16
    "GitLab Triage: ポリシーを定めるために YAMLファイルを作成 + conditions で対象となるIssueを定義し、 actions で対象となったIssueに行いたい操作を定義 + forbidden_labels は対象の除外条件" 2021
  • 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
  • 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
  • [アップデート]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
  • 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 を保存しているようです"
  • Terraform 1.6 で追加されそうな terraform test コマンドを試してみる

    最近 Terraform 1.6 のアルファ版がリリースされています。 リリースノートを読んでみると terraform test なるコマンドが含まれているではありませんか! これは試してみるっきゃないと思い、ちょっとだけ触ってみました。 サンプルコード 今回紹介するサンプルコードは以下のリポジトリで管理しています。 terraform test コマンドを試してみる シンプルなテスト terraform_data リソースを使ってさっくりとシンプルなテストを書いてみます。 テストファイルの拡張子は *.tftest.hcl にする必要があります。

    Terraform 1.6 で追加されそうな terraform test コマンドを試してみる
    sh19910711
    sh19910711 2023/08/04
    terraform_data リソースも知らなかったな / "Terraform 1.6 のアルファ版がリリース / リリースノートを読んでみると terraform test なるコマンドが / 1.5 の HCL 生成に引き続き、 1.6 もアツいことになりそう"
  • Terraformの状態を可視化するツール、「Pluralith」を試す

    Pluralithとは? プラリスと読むみたいです。 Terraformの状態(state)を可視化するツールです。 こんな感じの図が自動で作成できたり、 コストやリソースの変更を可視化することができます。 GitHub ドキュメント 紹介動画 特徴 pluralith graphを実行するだけで構成図を自動作成可能 CIツールに組み込むことで、ドキュメント・構成図の作成を自動化 最新の変更をハイライトして見やすくする コストの可視化ができる(infracostが必要) リポジトリのREADMEを参照のこと 使ってみる Getting Startedに沿って使ってみましょう。 ※今回はRun Locallyで試しています。 インストール Download CLI手順に従います。 $ pluralith version _ |_)| _ _ |._|_|_ | ||_|| (_||| | |

    Terraformの状態を可視化するツール、「Pluralith」を試す
    sh19910711
    sh19910711 2023/07/12
    便利そう / "Pluralith: Terraformの状態(state)を可視化するツール / 最新の変更をハイライトして見やすくする / 意図しないリソースの追加、削除がこれを使うと減りそう / リソース数が多くなってくると分かりづらい"
  • Terraformのplan結果をChatGPTに説明してもらう機能をCI/CDに組み込んでみた! - Qiita

    背景 インフラエンジニア 「このterraformコードのPR、レビューお願いします。」 インフラエンジニア 「変更点はplan結果↓を見てください。」 An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create ~ update in-place - destroy -/+ destroy and then create replacement Terraform will perform the following actions: # aws_instance.example1 will be created + resource "aws_instance" "example1" { + ami

    Terraformのplan結果をChatGPTに説明してもらう機能をCI/CDに組み込んでみた! - Qiita
    sh19910711
    sh19910711 2023/07/12
    "変更点はplan結果↓を見てください / レビュアーがTerraformに精通していなくても、この機能により変更点を理解する手助け / レビューの際にChatGPTがどんなことを喋ってくれるのか少し楽しみになる、というメリットも"
  • Terraform 1.5 で実現する config-driven なインポート作業 | はったりエンジニアの備忘録

    Terraform 1.5 で追加された import ブロックと -generate-config-out フラグを組み合わせると、既存のパイプラインの中で安全にインポート作業が行えるようになります。 Hashicorp ではこのことを "config-driven import" と呼んでいます。 Terraform 1.5 brings config-driven import and checks これまでは terraform import コマンドでリソースを 1 つずつインポートし、それを定義する HCL も自分で書く必要がありました。コマンドを実行すると即座に tfstate に反映されるので、HCL がマージされるまでの間にほかの人が誤ってリソースを削除してしまう危険性がありました。そのため、チームで共同作業するリポジトリでは気軽にインポートできませんでした。 Terra

    Terraform 1.5 で実現する config-driven なインポート作業 | はったりエンジニアの備忘録
    sh19910711
    sh19910711 2023/06/23
    "これまでは terraform import コマンドでリソースを 1 つずつインポート + HCL も自分で書く必要 / さまざまな OSS が存在していますが個人的にはどれも決定打に欠ける / Terraform 1.5 はこれらの問題をスマートに解決"
  • IaC Maturity Model と学習ステップ #srefm - ツナワタリマイライフ

    はじめに 先日、ノリと勢いで企画した SRE.fm を行い、ゆるふわに Terraform や IaC の話をしました。 sre-fm.connpass.com 実際にやってみて、質問への回答を行う中で、IaC に関わるひとたちのマジョリティと自分たちには大きな隔たりがあるような感覚を持ちました。そういった中で、質問の1点1点に答えるというよりも、大局的な理解であったり、その質的な要素であったり、段階に分けた学習ステップ等を言語化することが必要なのではないか、と(その後の二次会で)たどり着きました。 「IaC は当たり前になった」というのは Infra Study Meetup #1「Infrastructure as Code」 での Mizzy さんの言葉で、これに関しては大きく同意するものの、この「当たり前」は「誰でもしている状態になった」「できていないのはありえない」というもので

    IaC Maturity Model と学習ステップ #srefm - ツナワタリマイライフ
    sh19910711
    sh19910711 2023/06/02
    "IaC の難しさ: 複数人で運用するための仕組み作り + 運用を想像する難しさ / Infrastructure を Code で表現できるようになったことで、Software 開発でよく使われる方法がすべて好ましいかというとそうではない" / 2020
  • Terraform 1.5 で既存リソースからの HCL 生成ができるようになるので試してみる

    Terraform 1.5 のベータ版がリリースされています。 Terraform 1.5 で追加される機能の中には以下のようなものが含まれています。 import ブロック terraform plan の -generate-config-out オプション Terraform では手作業などで作成済みの既存リソースも terraform import コマンドを使用して Terraform の管理に追加することができます。 しかし、 import したリソースの HCL 自体は自分で書かなければいけません。 もしも既存リソースの HCL を自動で生成したい場合は GoogleCloudPlatform/terraformer などのサードパーティ製のツールを使用する必要があります。 ところが、 Terraform 1.5 で追加される import ブロックと terraform p

    Terraform 1.5 で既存リソースからの HCL 生成ができるようになるので試してみる
    sh19910711
    sh19910711 2023/05/29
    めっちゃ便利そう / "Terraform 1.5 で追加される import ブロックと terraform plan の -generate-config-out オプションを使用することで、既存リソースの HCL を自動で生成することができる"
  • PulumiはIaCの革命児になれるか

    序論 2023年4月にPulumi社はPulumiサービスにAIを組み込んだ機能を実装したと発表しました。 ここ最近、コード生成系AIが増えてきましたがIaCに特化したツールは珍しいと思いましたので触って感想を述べていきます。 Pulumiとは まずPulumiについて説明いたします。 Pulumiはプログラミング言語でインフラストラクチャーを作成できるプロビジョニングツールです。 プロビジョニングツールで有名なものですとTerraform[1]やAWS CDK[2]があり比較するとPulumiはやや知名度が低いです。 Googleトレンドより 類似ツール比較 VS Terraform 類似ツールとの違いについてドキュメントで紹介しています。Terraformとの主な違いについては以下の通りです。[3] 項目 Pulumi Terraform

    PulumiはIaCの革命児になれるか
    sh19910711
    sh19910711 2023/05/14
    "すでに他のツールで構築されているIaCソースコードをPulumiのソースコードに変換してくれるツールを提供 / Terraformから移行する場合はtf2pulumi / Pulumi AI: エラーの内容を分析して原因と修正方法を提示"