virt-builder で Ubuntu 18.04 を入れようとしてハマった件

KVM

とある事情で Ubuntu 18.04 のクリーンで直ぐにぶち壊せる環境が欲しかったので virt-builder で入れようとしたらすごくハマった件。 virt-builder でゲストを作って virt-resize でリサイズして virt-customize でカスタマイズ - Qiita でやってたのをもっ…

Phan/PHPStan/Psalm を VSCode で使ってみるメモ

普段 PHP のコードは PhpStorm で書いているので VSCode で PHP のコードを開くことはほとんどありませんが、たまに PhpStorm では OK なのに Phan などの静的解析ではエラーになることがあり、その修正のために何度も phan コマンドを叩くのは辛いので(な…

composer で replace してるパッケージを削除して元のパッケージに戻そうとしたら面倒だった

とあるプロジェクトで phpstan/phpstan-shim を過去に一時的に入れていたことがあって、もう使わないので削除しようとしたところ、composer.json からは消えていたものの実際には削除出来ていませんでした。 こんな感じの依存関係になっています(これは説明…

terraform-provider-libvirt を使ってみる

先日 vagrant-libvirt を使ってみました が、libvirt も terraform-provider-libvirt を使えば Terraform で管理できるので試してみました。 インストール Terraform オフィシャルのプロバイダであれば terraform init で自動的にバイナリがダウンロードされ…

vagrant-libvirt を使ってみる

ずいぶん前に Docker Desktop (Docker for Windows) のために Hyper-V を有効にしたため VirtualBox が使えなくなりました。それに伴って Vagrant も使わなくなりました。 最初は Vagrant が使えなくなるのは辛いかな・・と思っていたのですが、開発系の作業…

いまさら vagrant-aws を使ってみる

ずいぶん前に Docker Desktop (Docker for Windows) のために Hyper-V を有効にしたため VirtualBox が使えなくなりました。それに伴って Vagrant も使わなくなりました。 最初は Vagrant が使えなくなるのは辛いかな・・と思っていたのですが、開発系の作業…

AWS DataSync を素振りしたメモ

AWS

AWS DataSync はオンプレから AWS 上の S3 や EFS にデータを転送するものというイメージだったので、それならあまり使う機会はないかなー、と思っていたのですが下記によると EFS と S3 の間でデータの転送もできるので、それなら使う機会もあるかもー、と…

Amazon Data Lifecycle Manager (DLM) と AWS Backup を素振りしたメモ

AWS

今まで EC2 インスタンスや EBS のバックアップには cron でスクリプトを回したり CloudWatch Events のスケジュールからの Lambda とかでしかやったことなかったので、Amazon Data Lifecycle Manager (DLM) と AWS Backup を EC2 と EBS だけでですが試して…

Node.js で axios とかから投げられる例外のスタックトレースが辛い

axios とかでエラーになったとき、 const axios = require('axios').default; async function f1() { await axios.get('http://localhost:9999'); } async function f2() { await f1(); } f2().catch(err => console.error(err.stack)); 素のままだとほとん…

Vercel を素振りしてみたメモ

Now という PaaS(静的サイトしかできないものだと思っていたけど動的もできたらしい)がいつのまにか Vercel という名前に変わった? ようなので試してみました。 ZEIT is now Vercel – Vercel イントロダクションだと Github などのコードリポジトリからデ…

Amazon WorkSpaces を素振りしたメモ

AWS

2020/09/30 まで無料枠が拡大されているらしいので使ってみました。 https://aws.amazon.com/jp/workspaces/pricing/#FreeTier がしかし、Amazon WorkSpaces を使って最初の2ヶ月間は元々無料枠があるので、あえて今使わなくても良かったかも。どうせちょっ…

AWS Cloud Development Kit (AWS CDK) を素振りしたメモ

AWS

AWS Serverless Application Model (AWS SAM)を素振りしたので次は AWS CDK を試してみました。 チュートリアル 下記のチュートリアルを見ながら試してみます。 https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html typescript ts-node aws-cdk …

AWS Serverless Application Model (AWS SAM) を素振りしたメモ

AWS

Serverless Framework を素振り したので次は AWS SAM を素振りしてみました。 インストール まずは AWS SAM CLI をインストールします。 Linux へのインストール手順でおもむろに Homebrew が出てきます。 https://docs.aws.amazon.com/serverless-applicat…

Serverless Framework 素振り

Serverless Framework とは AWS Lambda などの FaaS を構成管理するツールです。AWS 専用というわけではなくさまざなクラウドプロバイダの FaaS をサポートしています。 今回は AWS Lambda の構成管理を試したかったので下記のドキュメントを参考に素振りし…

tcpdump でキャプったデータから TCP ストリームを取り出す

tcpdump で次のようにキャプって保存したファイルは wireshark で開いて解析できます。 tcpdump -nn -w a.cap port 80 wireshark なら tcpdump よりもいろいろな解析が可能なので、よくサーバでキャプったファイルから HTTP などの TCP ストリームを取り出す…

firewalld の target の default と REJECT の違い

firewalld でインタフェースやソースアドレスに基づいて特定のゾーンに入ったパケットが、そのゾーンに設定されているサービスやポートにマッチしなかったときのデフォルトの動作は、ゾーンの target で指定します。 指定します、と言っても定義済のゾーンで…

リージョン間の VPC ピアリング接続経由で SES SMTP の VPC endpoint を使う素振り

AWS

下記によると Amazon SES の SMTP エンドポイントに VPC エンドポイント(Private Link)経由でアクセスできるようになったので、インターネットアクセスの無いプライベートサブネットからでも VPC エンドポイント経由で SMTP でメールを送れるようになった…

TCP backlog が溢れたときに何が起こるか

何となくふんわりとしか理解していなくて、実際のところ TCP backlog が溢れたときに Client~Server 間で何が起こるかよく判っていなかったので、実際に backlog が 1 で accept しない簡易な TCP サーバを作り、tcpdump でどのようなパケットが飛び交うか…

Makefile で複数の Lambda 関数をデプロイするメモ

複数の Lambda 関数で構成される環境を、基本的な構成は Terraform で管理しつつ、Lambda 関数のコードは make で aws cli を呼び出してデプロイするメモ。 Lambda 関数のコードも含めてすべてを Terraform で管理することもできると思いますが・・・それだ…

tmux で複数コマンドを複数ペインでさっと実行する

だいぶ前に社内ブログで次のような方法で tmux でペイン分割して複数コマンドを同時に実行する方法を紹介していたのですが、 tmux new-session -d ping 1.1.1.1 &&\ tmux split-window ping 8.8.8.8 &&\ tmux split-window ping 8.8.4.4 &&\ tmux set-window…

CentOS 8 を virt-install でサクッと入れる

こんな感じに centos8.ks.cfg を作成して、 #version=RHEL8 cmdline url --url=http://ftp.riken.jp/Linux/centos/8.1.1911/BaseOS/x86_64/os/ lang en_US.UTF-8 keyboard --vckeymap=jp --xlayouts=jp timezone Asia/Tokyo --isUtc --ntpservers=192.168.2.…

Gitlab CI でマージリクエストのマージ結果でパイプラインを実行する

Gitlab は マージリクエストに対してそれがマージされた結果を元にパイプラインを実行できます。 Pipelines for Merged Results | GitLab 便利そうですけど、これは gitlab.com なら Silver 以上、セルフホスティングなら Premium 以上じゃないと使えないよ…

PHP版の Power Assert もどき「Phpower」

PHP

js には Power Assert という便利なパッケージがあります。私自身は js でテストをほとんど書いたことがないので使ったこと無いのですが、例えば次のようなアサーションが、 assert(ary.indexOf(zero) === two) 次のように assert の各部位の値が表示される…

docker-compose で PostgreSQL のストリーミングレプリケーションをサクッと試す

PostgreSQL のレプリケーションははるか昔に pgpool (pgpool-II ではなく) でレプリケーションさせて以来まったく触ってなかったので、組み込みのストリーミングレプリケーションをサクッと試してみました。 他にも色々パラメータを調整すべきものがあるらい…

「入力した項目だけで検索」に IS NOT FALSE を使うなら被検索列が NULL にならないか注意

わりとよくある、複数の項目に検索条件が入力できて、入力した項目だけを検索条件として使用し、未入力の項目は検索条件には使わない、というフォーム、クエリビルダのようなものを使わないなら IS NOT FALSE を使うと便利です。 SELECT * FROM t WHERE ( a …

Ansible AWX を素振りしたメモ

Ansible AWX を素振りしたメモ。WebUI から Ansible を実行して実行結果を記録・閲覧したり、役割ベースでアクセスコントロールしたり、スケジュールで自動で Ansible を実行したり、メールや Slack などで通知したり、などなど、いろいろできます。 Ansible…

Ansible の synchronize で不必要に changed になるのを防止+α

Ansible で大量のファイルをコピーしたいときは copy よりも synchronize の方が早いですが、 - hosts: all become: yes tasks: - name: synchronize many files synchronize: src: many-files/ dest: /tmp/many-files/ これだけだと rsync の -a が指定され…

パッシブチェックのアラートを freshness で自動で解除する

snmptrap などによる通知を Nagios のパッシブチェックで受けるとき、アラートになったあと手動で解除するまでずっとアラート状態のままになります。解除(OK)もパッシブで受けるようになっていれば別ですけど・・・ なんとなくずっとアラート状態のままなの…

Grafana Loki を素振りしたメモ

[Loki]Grafana Loki を素振りしたメモ Grafana Loki が ちょっと前に v1.0.0 がリリースされて GA になっていた ので素振りしました。 試したバージョンは v1.2.0 です。Kubernetes とかはよくわからないのでスルーしてます。 概要 Grafana Loki は Grafana …

systemd のテンプレートユニットで同じプロセスを複数立ち上げる

systemd で同じプロセスを複数立ち上げる方法。Supervisord なら numprocs を指定するだけですけど systemd には相当する設定項目がありません。 ので、テンプレートユニットを使って、1つのユニットファイルを元に複数のプロセスを立ち上げます。 worker@.s…