mito’s blog

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

2022-01-01から1年間の記事一覧

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

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

[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で置換する

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

[Jenkins] パイプラインをDocker outside of Dockerで動かす

はじめに JenkinsをDokerコンテナで動かすのではなく、JenkinsのパイプラインをDocker outside of Dockerで実行します。 DooD(Docker outside of Docker)とは コンテナからコンテナを操作したいときに使用します コンテナ内から、ホストのDocker環境で実行さ…

[Jenkins] パイプラインをECRに登録したイメージで動かす

はじめに JenkinsをDokerコンテナで動かすのではなく、JenkinsのパイプラインをECRに登録したイメージで実行します。 環境 Jenkins : 2.332.2 Amazon ECRプラグイン : 1.73.v741d474abe74 インストールするプラグイン Amazon ECRプラグイン 認証情報の種類に…

[Packer] HCL2形式でDockerイメージを作成する

はじめに amazoncorrettoのDockerイメージを作成します。 JSON形式ではなく、HCL2形式で書きます。HCL2形式で。 Packerとは 単一のソーステンプレートから複数のプラットフォーム用の同一のマシンイメージを作成できるオープンソースツールです。 Packer by …

[Jenkins] パイプラインをDockerコンテナで動かす

はじめに JenkinsをDokerコンテナで動かすのではなく、JenkinsのパイプラインをDockerコンテナで実行します。 環境 Jenkins : 2.332.2 OS : AmazonLinux 2 (Master、Node同様) Docker : 20.10.13 DockerImage : amazonlinux ノードの構築 SSH経由でエージェ…

[JFrog Artifactory] dockerで構築してみた

はじめに JFrog ArtifactoryのOSSがあったので、dockerで構築しました。 JFrog Artifactoryとは アーティファクト、パッケージ、ビルドを一元的に、異なるパッケージタイプも管理することができるユニバーサルアーティファクトリポジトリです。 Artifactory-…

[Terraform] terraform consoleで変数の値を確認したり、関数を使ってみる

はじめに apply後の確認に使ったり、関数の検証に使用しています。 terraform console 変数の値や式の結果を確認することができます。 Command: console | Terraform by HashiCorp aws_instanceの情報を確認する Consoleから確認することが手間なときや、ほ…

[EKS] クラスター作成に向けてVPCを作ろうとしたら、デフォルトサブネットのAZが一つしかなくて失敗した

EKS

はじめに EKSクラスターの作成はeksctlを使ったほうが手順は簡単なのですが、どのようなリソースが使われているか知りたかったので、Managment ConsoleとCliで作成しました。 その際に発生したエラーです。 Amazon EKS の開始方法 – AWS Management Console …

Cloud9環境でAWS CLIを2系の最新版にバージョンアップする

AWS

はじめに AWS Management ConsoleとAWS CLIを使ってEKSを作成するには、AWS CLIのバージョンが2.4.9以降、または1.22.30以降の使用を想定していると記載がありました。 そのため、AWS CLIの2系最新版を入れます。 Amazon EKS の開始方法 – AWS Management Co…

TerraformでJenkinsの構築を自動化したときのメモ

はじめに 環境 java-openjdk11のインストール セットアップウィザードの無効化 ログインの有効(設定の変更) initialAdminPasswordの取得 プラグインのインストール 認証情報の登録 ノードの登録 備考 はじめに DockerやAnsibleは使わず、terraformのfileや…

【bash】while readでjarファイルを実行すると、1行目で止まる

やりたいこと テキストにまとめたJenkinsプラグインのインストールをスクリプトで自動化したい。 各ファイルの準備 スクリプトとプラグインをまとめたテキストを用意します。 インストール用のスクリプト while read line do java -jar jenkins-cli.jar -s h…