CLOVER🍀

That was when it all began.

Terraformのcount、for_eachに作成前のリソースの情報を指定できないという話

これは、なにをしたくて書いたもの? Terraformでcountを使っていた時にこんなエラーに当たったので、「これはなんだろう?」と思い。 The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predi…

リモートホストで動作しているDockerデーモンを使用する

これは、なにをしたくて書いたもの? リモートホストで動作しているDockerデーモンを扱ったことがなかったので、1度試してみようかな、と。 環境 今回の環境は、こちらです。 $ uname -srvmpio Linux 4.15.0-108-generic #109-Ubuntu SMP Fri Jun 19 11:33:1…

TerraformでリソースやモジュールのOutputを一括で設定する

これは、なにをしたくて書いたもの? Terraformを使っていて、 output "xxx" { value = resource_a.this.xxx } output "yyy" { value = resource_a.this.yyy } output "zzz" { value = resource_a.this.zzz } ... といった感じで、あるリソースやモジュール…

Quarkusでコマンドラインアプリケーションを作る

これは、なにをしたくて書いたもの? Quakusでコマンドラインアプリケーションを作れそうな感じのガイドがあったので、試してみようかなと。 Quarkus - Command Mode Applications Picocli向けのExtensionもあるようです。 Quarkus - Command Mode with Pico…

GitLabをTerraformのStateの保存先として使う

これは、なにをしたくて書いたもの? GitLab 13.0で、TerraformのStateのバックエンドとして利用できるようになったというのを見かけまして。 GitLab 13.0 released with Gitaly Clusters, Epic Hierarchy on Roadmaps, and Auto Deploy to ECS / GitLab HTT…

Terraformリソース間の依存関係を確認する

これは、なにをしたくて書いたもの? Terraformのリソース間の依存関係について、ちゃんと学んでおきたいなと思いまして。 リソース間の依存関係について Terraformのドキュメントで、リソースについて書かれているページを見てみます。 Resources - Configu…

RESTEasy+Vert.x(Embedded Container)で遊ぶ

これは、なにをしたくて書いたもの? RESTEasyを組み込みサーバー上で動かす方法はいくつかあるのですが、以前にもUndertow、Netty、JDK HTTP Severなどで やったことがあります。 RESTEasyをJDK付属のHTTPサーバ、Undertowで動かす - CLOVER UndertowでJAX-…

jcmd(jstack)を使わずに、スレッドダンプを取得する

これは、なにをしたくて書いたもの? jcmdやjstackなどを使わずに、Javaアプリケーションのスレッドダンプを取得する方法を、自分でも試しておこうかなと。 ThreadMXBean#dumpAllThreads​とThread#getAllStackTraces やり方としては、ThreadMXBeanやThreadク…

Fluent Bitで、複数のOutputを使いたい

これは、なにをしたくて書いたもの? Fluentdでは、ひとつのレコードを複数の出力先で扱う場合、copy Output Pluginを使用します。 copy - Fluentd これを、Fluent Bitでやる場合はどうするのかな?ということで、調べてみました。 結論は、とても単純でした…

Terraformで、リソースを作成する・しないをコントロールしたい

これは、なにをしたくて書いたもの? Terraformでリソースを作るにあたり、条件によって作る・作らないをコントロールしたいなと。 解法としては繰り返しを使うみたいなのですが、自分でちゃんと追ってみましょうか、と。 環境とお題 今回の環境は、こちら。…

Fluent Bitを使って、DockerコンテナのログファイルをTailプラグインで読む

これは、なにをしたくて書いたもの? 前に、Fluent BitをDockerのlogging driverとして使ってみました。 Fluent BitをDocker logging driverとして使う - CLOVER 今度は、DockerコンテナのログをTailプラグインで読み込んでみようと思います。 Tail - Fluent…

Fluent BitをDocker logging driverとして使う

これは、なにをしたくて書いたもの? 以前、FluentdをDockerのlogging driverとして使ってみたことがありました。 Docker環境で、コンテナのログをFluentdに出力する(Docker logging driverとして使う) - CLOVER 今回は、Fluent BitをDockerのlogging driv…

PythonでRocksDBを使う

これは、なにをしたくて書いたもの? ふと、RocksDBのPythonバインディングを使ってみようかなと思いまして。 python-rocksdb RocksDB自体はC++で作られていますが、pytyon-rocksdbを使うことでPythonからも利用することができます。 Welcome to python-rock…

Fluent Bitで、複数行のログファイルを読む

これは、なにをしてくて書いたもの? Fluent Bitで、複数行のログ(Multiline)を読み込んでみることを、試してみようかなと。 Multiline Fluent Bitで複数行のログを読み込むためには、tail inputプラグインの設定を調整します。 Tail - Fluent Bit: Offici…

GitLabのバージョンを確認する

GitLabのバージョンの確認方法。 記載時点で、GitLab 12.10.3で確認。 GitLabが動作しているサーバーにログインできる場合 gitlab-rakeコマンドで確認します。 Maintenance Rake tasks | GitLab Omnibusインストーラーを使ったのか、ソースからインストール…

TerraformリソースのLifecycleのカスタマイズを行う

これは、なにをしたくて書いたもの? TerraformリソースのLyfecycleのカスタマイズした時の動きを、1度自分でも確認しておきたいなということで。 TerraformのMeta Arguments Terraformのリソース定義には、Meta Argumentsと呼ばれる引数を含めることができ…

Pythonのインタラクティブシェル起動時に、スクリプトを読み込む

Pythonのインタラクティブシェルで、スクリプトで定義した関数などを読み込みたい、という場合にどうしたらいいのかな? ということで。 使ったPythonのバージョン。 $ python3 -V Python 3.6.9 ヘルプを見てみます。 $ python3 -h どうやら、「-i」オプショ…

SQLiteをPythonから使う

これは、なにをしたくて書いたもの? ちょっとした用途でお手軽にデータベースを使いたいといった文脈の時に、JavaだとH2 Databaseあたりが挙がりますが、 そういえばSQLiteを使ったことないよなと思いまして。 1度、ちゃんと見てみようかなと思って今回使っ…

TerraformでRemote Stateを参照して、Data Sourceとして扱う

これは、なにをしたくて書いたもの? TerraformのRemote Stateを参照することで、Data Sourceとして扱えるらしいので、試してみることにしました。 Remote StateをData Sourceとして使う Remote Stateは、デフォルトではローカルに保存されるStateを、別のリ…

Terraformのgraphコマンドで、構成を可視化してみる

これは、なにをしたくて書いたもの? Terraformのリソースの依存関係を出力できないのかな?と思ったのですが、terraform graphコマンドでGraphvizのdot形式で出力可能な ようなので、1度試してみることにしました。 Command: graph - Terraform by HashiCor…

Terraformモジュールのインスタンスとリソースのスコープを確認したい

これは、なにをしたくて書いたもの? Terraformのモジュールというものを、この前初めて書いてみたのですが、同じリソース定義を別のモジュールに含めた時に、 どういう動きになるのかな?というのを確認してみたいと思いまして。 いろいろ、バリエーション…

TerraformのData Sourceを試す

これは、なにをしたくて書いたもの? TerraformのData Sourceを使ってみよう、ということで。 Data Source Terraformには、Data Sourceというものがあります。Data Sourceは、外部データを参照できる仕組みです。 Data Sources - Configuration Language - T…

Terraformのモジュールを書いてみる

これは、なにをしたくて書いたもの? Terraformのモジュールというものを、1度自分で書いてみようかな、と。 練習ですね。 Terraform Module Terraformのモジュールは、複数のリソースをまとめて抽象化したものです。 Creating Modules - Terraform by Hashi…

Ubuntu Linux 18.04 LTSに、Fluent Bitをインストールする

これは、なにをしたくて書いたもの? 以前、少しFluentdを触っていたのですが、Fluent Bitも1度確認しておいた方がいいかな、と思いまして。 今回、軽く試してみることにしました。 Fluent Bit? Fluent Bitのオフィシャルサイトは、こちら。 Fluent Bit Git…

TerraformのStateをConsulで管理する

これは、なにをしたくて書いたもの? TerraformのStateについてちゃんとドキュメントを読んでいなかったので、1度確認しておこうということと、Stateをローカルファイル以外で 管理する方法もあるらしいので、そちらも見てみようかなということで。 今回は、…

Docker Composeで、Redis Clusterをできる限り簡単に作る

これは、なにをしたくて書いたもの? Redisでたまにクラスタを作るのですが、ふだん素のDockerでやっていて面倒だなーと思うようになり。 Docker Composeで構成しようと思うのですが、Redis Clusterを作る時はコマンドを実行する必要もあり。 このあたり、ど…

OSSのコンテナイメージ脆弱性スキャンツール、Trivyを試す

これは、なにをしたくて書いたもの? 以前からちょっと気になっていた、Trivyというコンテナイメージの脆弱性スキャンツールを試してみたいと思います。 GitHub - aquasecurity/trivy: A Simple and Comprehensive Vulnerability Scanner for Containers, Su…

PrometheusのRedis Exporterを試す

これは、なにをしたくて書いたもの? 久しぶりに、Prometheusまわりを見ていこうかなと思いまして。ちょっとずつ。 今回は、RedisのExporterを試してみようと思います。 GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Support…

docker image build時に、DNSの設定をなんとかしたい

これは、なにをしたくて書いたもの? Dockerコンテナ内で、たまに名前解決できなくて困ることがあります。 それを、Dockerイメージをビルドする時に同じようにハマったら、どうしましょうか?という話。 環境 今回の環境は、こちら。Ubuntu Linux 18.04 LTS…

socat+ncコマンドでTCP通信を転送しつつ、フォワードプロキシ越しにアクセスする

これは、なにをしたくて書いたもの? 最近、TCPプロキシサーバーを立ててみたり、プレーンなTCP通信をSSL/TLS化してフォワードプロキシ越しにトンネリングしたりして 遊んでいるのですが、 socatでTCPプロキシサーバーを立てる - CLOVER stunnelを使って、…