mito’s blog

IT技術メインの雑記。思い立ったが吉日。

IaCツールのPulumiに入門した

はじめに PulumiはオープンソースのIaCツールで、クラウドリソースのプロビジョニングとデプロイを行います。 TerraformやAnsible相当の役割を担えます。 それらとの大きな違いの一つは、定義ファイルが複数のプログラミング言語で書けるという点です。そこ…

VScodeのDevContainerでC言語に再入門した

c

はじめに 新卒時代にCで組み込み系に携わっていたけど、それ以降はたまにVBAやShellScriptを、業務ではAnsibleやTeraformで定義ファイルを書いていました。 最近、プログラミングを学びなおすのに良さそうな複数の理由ができたので、経験のあるCで100本ノッ…

Cloud Native Days Tokyo 2023 参加レポート

技術カンファレンス Advent Calendar 2023 シリーズ2の14日目の記事です。 はじめに Cloud Native Days Tokyo 2023(以下、CNDT2023)の初日に現地参加してきました。 以下に、いくつかのセッションと現地参加の感想を記載しています。 event.cloudnativeday…

Terraform Provider for Ansible「resource "ansible_playbook"」を試してみた

terraform Advent Calendar 2023 の11日目の記事です。 はじめに 気になっていた Terraform Provider for Ansible をこの機に試してみました。 今回の対象は resource "ansible_playbook" です。 Terraform Registry GitHub - ansible/terraform-provider-an…

[Ansible X Terraform] Terraform Provider for Ansible 「resource "ansible_host"」を触ってみた

この記事は、Ansible Advent Calendar 2023 の3日目のエントリです。 はじめに 気になっていた Terraform Provider for Ansible をこの機に触ってみました。 Terraform Registry GitHub - ansible/terraform-provider-ansible: community terraform provider…

Cloud Operator Days Tokyo 2023 参加レポート

はじめに Cloud Operator Days Tokyo 2023(以下、CODT2023)に、登壇とクロージングイベントへ現地参加してきました。 いくつかのセッションと現地参加の感想を記載しています。 Cloud Operator Days Tokyo - Cloud Operator Days Tokyo 2023 はじめに セッ…

[GitHub Actions] セルフホストランナーをCloud9で試す

はじめに GitHub ActionsをCloud9に構築したセルフホストランナーで動かしてみます。 GitHubホストランナーは利用時間の制限(無料/有料)があったり、OSの種類が決まっていますが、 セルフホストランナーは自身で用意するため、制限はなくカスタマイズも自由…

[Ansible][Terraform]AnsibleとTerraformのModuleの違い

AnsibleとTerraformには、Moduleと呼ばれる機能があります。 ただし、名前が同じなだけで内容は異なります。 概要 Ansible Terraform コードの要素 Module タスクの単位 Resource リソースの単位 再利用可能なコードの単位 Role タスクの集合 Module リソー…

[Terraform][AWS]Terraformで作成したSecrets ManagerとParameter Storeのtfstateにおける違い

結論 terraformで以下のリソースを作成し、手動などでシークレットの値を更新した後、再度terraformコマンドを実行すると、 Secrets Manager terraform refreshをしても、tfstateに変更はありません。 terraform applyをしても、changedになりません。 Param…

[Ansible][AWS] ParameterStoreモジュールでユーザとパスワードを登録する

はじめに community.awsにあるssm_parameterモジュールで、ユーザとパスワードを登録します。 community.aws.ssm_parameter module – Manage key-value pairs in AWS Systems Manager Parameter Store — Ansible Documentation AWS Systems Manager(SSM)パラ…

[Ansible][AWS] SecretsManagerモジュールでユーザとパスワードを登録する(更新2023.02.13)

はじめに community.awsにあるsecretsmanager_secretモジュールで、ユーザとパスワードを登録します。 community.aws.secretsmanager_secret module – Manage secrets stored in AWS Secrets Manager — Ansible Documentation はじめに 環境 AWS Secrets Man…

自社のアドベントカレンダーを企画し、無事に完遂した話

はじめに 終わってみれば、ご協力もあり無事に完遂しましたが、社内(特に他部署と)の交流不足が大きかったと思います。 他部署でちらほらブログを書いていた方が数名いたので何とかなるでしょと思っていましたが、そもそも会話したことがないという状況でし…

[Terraform] 関数を使って、年月日時分秒をユニークな文字列として扱う

この記事は、カサレアル Advent Calendar 2022 の19日目のエントリです。 はじめに ユニークな文字列が欲しかったので、年月日時分秒を取得し文字列にしました。 以下の関数を組み合わせます。 timestamp - Functions - Configuration Language | Terraform …

[Ansible] Assume Roleモジュールを使う

この記事は、カサレアル Advent Calendar 2022 の18日目のエントリです。 はじめに 最近、AnsibleのAWSコレクションにamazon.awsとcommunity.awsの2つがあることを知りました。 community.awsのほうにAssume Roleモジュールがあったので、それを試してみま…

[Ansible] ダイナミックインベントリで起動中のインスタンスのIPアドレスを出力する

この記事は、Ansible Advent Calendar 2022 の9日目のエントリです。 はじめに ダイナミックインベントリを使う時はデフォルトのDNS名をhostsに指定していたのですが、ほかの指定はできないのかと思い、IPアドレスを対象に実施してみました。 Dynamic Invent…

[Ansible x Terraform] local-execでPlaybookを実行してみた

この記事は、Ansible Advent Calendar 2022 の2日目のエントリです。 はじめに 今回はAnsibleのTerraformモジュールを使うのではなく、TerraformでEC2インスタンスを作成し、local-execでPlaybookを実行してパッケージをインストールします。 AnsibleのAmazo…

[Ansible x Terraform] TerraformでKeyPairの作成やAmazon Secrets ManagerにKeyPairを登録し、Ansibleで利用する

この記事は、カサレアル Advent Calendar 2022 の2日目のエントリです。 はじめに TerraformでEC2インスタンスやKerPairなどのリソースを作成し、それをAnsibleで活用します。 以下の流れで試します。 [Terraform] EC2インスタンスやSSHキー(KeyPair)などの…

[AWS Backup] バックアップとリストアを試してみた

AWS

この記事は、カサレアル Advent Calender 2022 の1日目のエントリです。 はじめに AWS Backup を知ったので、EC2インスタンスを対象にバックアップとリストアを試してみました。 AWS Backup とは? AWS Backup はフルマネージド型のバックアップサービスであ…

[Ansible 2.13] Terraformモジュールを使う際に気を付けるポイント

はじめに AnsibleでTerraformモジュールを使った際に、気を付けるポイントを書き留めておきます。 以下にはまりました。 Terraformのoutputの変数名にハイフンを使用していたため、Ansibleで呼び出せずエラーになった。 原因はTerraformでは変数名にハイフン…

[Ansible] Terraformモジュールを使って、terraform applyを実行する

はじめに AnsibleとTerraformを組み合わせると楽できそうだったので、AnsibleのTerraformモジュールを使ってみました。 community.general.terraform module – Manages a Terraform deployment (and plans) — Ansible Documentation terraformとansibleを機…

[Terraform]モジュールで定義した変数を参照する

はじめに モジュールで定義した変数を参照するには、outputで定義する必要があります。 先日同僚から教わった、分かりやすいたとえがこちらです。 モジュールはそれ単体が一つの独立したTerraform、あるいはアプリケーションだと思っていただくとイメージし…

[Snyk][Terraform] Snykで実リソースとtfstateファイルの差分を検出してみた

はじめに 実リソースとコードの差異を検出することをドリフト検出と言うそうです。 今回は、Terraformで作成したAWSリソースとtfstateファイルの差異を検出します。 Snykで試したかったことがこれです! まとめ ドリフト検出を試して、おおむね満足のいく結…

[Snyk] Snyk CLIをインストールする

はじめに 先日開催されたCNSC2022やHashiTalks:Japanで紹介されたSnykが気になったので、触ってみました。 本記事ではDockerイメージのスキャンを試していますが、こちらの記事では、Snykでドリフト検出(実リソースとtfstateの差異を検出)を試しています。 S…

[AWX] Ubuntuにk3sとawx-operatorでAWXを構築する(更新2023.03.28)

はじめに AWXバージョン21をk3s上にawx-operatorで構築します。 構築手順は、整理したらそんなに複雑ではなかったです。また、Githubにはminikubeを例にした構築手順が載っていますが、k3sは軽いというし触ってみたかったので。 GitHub - ansible/awx-operat…

[Backlog] [GoogleAppsScript] 本日が期限日の課題を直接Slackに通知する

はじめに 本日が期限日の課題をGoogleAppsScript(以下、GAS)で直接Slackに通知します。 前回の記事ではBacklogのインテグレーションを利用していましたが、今回はGASのみで実装します。 Slackの設定 以下を参考にしてください。 手順5で表示される Incoming …

[Backlog] [GoogleAppsScript] 本日が期限日だけど完了していない課題をSlackやTeamsに通知する

はじめに Backlogのインテグレーションでは、本日が期限日だけど完了していない課題を通知出来ません。そのため、GoogleAppsScriptで課題にコメントを登録するコードを作成し、Backlogのインテグレーションで通知できるようにしました。 GoogleAppsScriptを…

[GitLab] GitLabのAPIを使って設定投入をコード化する

はじめに GitLabの以下設定をAPIで実施していきます。 API Docs | GitLab APIによる設定 ユーザの作成 グループのインポート グループにユーザを追加 グループにプロジェクト(リポジトリ)をインポート リポジトリにWebhookを登録 環境 GitLab : 15.0 OS : …

[Veracode] JenkinsのパイプラインでVeracodeのアプリケーション診断を実行する

はじめに JAVAアプリをビルドし、JenkinsのパイプラインでVeracodeのアプリケーション診断を実行してみます。 なお、フリースタイルプロジェクトではなく、パイプラインで実装します。 Veracodeとは ソースコードの静的解析やアプリケーションに対する動的解…

[Veracode] VScodeのVeracodeプラグインで静的解析を試す

はじめに VScodeのVeracodeプラグインで静的解析を試します。 このVeracodeプラグインを使用すると、例えばファイル保存時に自動でスキャンし、コードのセキュリティ上の欠陥を検出してくれます。つまり、セキュアコーディングを実践しやすくなります。 Vera…

[Jenkins] パイプライン内で$文字列をsedで置換する

はじめに 成功パターン $の前に「\」バックスラッシュをつけ「'」シングルクォーテーションで囲む 失敗パターン $の前に「\」をつけるのみ $の前に「\」をつけ、引数は「"」で、全体は「'」で囲む $の前に「\」をつけ、引数は「"」で、全体も「"」で囲む は…