のぴぴのメモ

自分用のLinuxとかの技術メモ

Linux

テストでプロセスをハングアップさせる方法

対象のプロセスにSIGSTOPを送るとプロセスが一時停止するので、これでプロセスのハングアップ状況を作ります。再開する場合は対象のプロセスにSIGCONTを送りますが、正常に再開するかは該当アプリの作りなので、再起動(systemctl restart XXXXXとか)してしま…

Amazon Linux2にterraformをセットアップする

Googleで検索すれば記事は多数出てくるのですが、Amazon Linux2にterraformをセットアップした時の手順を備忘録のために記録します

Amazon Linux2にCloudWatchエージェントを設定する手順(ユーザデータでの手順あり)

Amazon Linux2にCloudWatchエージェントをセットアップする手順をまとめました。ドキュメントではSSMから操作する手順をメインにしていますが、AutoScalingなどでUserDataにセットアップ手順を埋め込むことを考慮し全てコマンドラインでセットアップが完結す…

AWS CLIのAssumeRoleするプロファイル設定を使って、AssumeRoleのクレデンシャルを取得し環境変数に設定するシェル芸 ワンライナーを作ってみた

見やすいようにバックスラッシュで行を分けてますが、ワンライナーです。 terraformをローカルマシンで実行する時に、AWSプロバイダーの部分にローカルマシン固有のプロファイルとか埋め込みたくないけど、都度クレデンシャルを手で環境変数に設定するのは手…

Red Hat Developer ProgramのサブスクリプションはRed Hat DeveloperからRHELイメージをダウンロードすると自動的に付与される件

Red Hat Developer Programのに参加すると、無料のRed Hat Enterprise Linuxサブスクリプションを取得することができます。RHELのを取得できるのも嬉しいですが、redhatの ナレッジベースを参照できるようになるのが嬉しいです。 ちなみに、この無償プログラ…

gitのpull reqやpushで更新があったディレクトリを抽出しJOSNの配列にするシェル芸

やりたいこと system毎にディレクトリが分かれているterraformがあり(下記イメージ)、パイプラインで更新があったプロジェクトのディレクトリを判別してterraformを実行したい。 具体的には、git diffを使って差分があるディレクトリを抽出し、それをJOSNの…

Amazon ECS タスク定義の"タスクサイズのCPU"と”コンテナのCPUユニット”の違いを調べてみた

こちらはAWS Containers Advent Calendar 2020の13日目の記事です。 本記事は個人の意見であり、所属する組織の見解とは関係ありません。とてもこまか〜い話ですが、Amazon ECSのタスク定義設定ではCPUのリソース設定に関して以下の2つのパラメータがありま…

AWS環境のRHEL7/8にDNSキャッシュ(dnsmasq)を設定してみた

AWS環境にRHEL8とRHEL7にdnsmasqを利用したDNSキャッシュを設定した時の手順メモです。ネットワーク設定にDHCPを利用している環境の場合、DHCPとの整合性を合わせる部分が鍵となります。 RHEL8とRHEL7の違いですが、RHEL8はNetworkManagerがよろしくやってく…

C言語/glibc getaddrinfo()を使ってホスト名からIPアドレスに変換するサンプル

getaddrinfo()による名前解決とIPアドレスに解決した情報の参照方法のサンプルコードを以下に記載します。またおまけで、getaddrinfo()を実行した時の挙動をざっくり説明します。

BINDのResolverを UserDataとAWS CLIの"ec2 run-instances"で作成する

検証などでVPCの中にDNSリゾルバーを個別に立てる場合に、bindのインストールや設定をUserDataに埋め込んでしまうことで、OSへのログインをせずにbindによるDNSリゾルバーを作る手順です。かつマネコンではなくAWS CLIで作っています。

AWS NitroインスタンスのLinuxでEBSボリュームを特定する手順

m5・c5・t3などのNitroタイプのインスタンスを利用している場合にOS上で認識しているボリュームがどのEBSボリュームかを、Volume IDベースで確認する手順です。 なおXenベースのインスタンス(m4以前、c5以前、t2以前など)は調べた限りでは、残念ながらVolume…

PostgreSQL11.6のクライアントの共有ライブラリ&開発ツール(32bit)をソースコードからビルドする手順(on RHEL8)

諸事情で、PostgreSQL11.7 クライアントとクライアントの開発環境をRHEL8上で、32bitで準備する必要があって手順を確認したものです。32bitでビルドするポイントはconfigureの時にオプションで"--build="i686-pc-linux-gnu" "CFLAGS=-m32" "CXXFLAGS=-m32" "…

Linuxでファイル名がSJIS(CP932)のものをUTF-8のファイル名に一括変換する

convmvをインストール sudo yum -y install convmv 使い方 cd <変換したいファイルがあるディレクトリ> convmv -r -f cp932 -t utf-8 --notest * -r 再帰的に変換を実行 -f cp932 : 変換元のコード指定。cp932は、windowsのSJISコード名称 -t utf-8: 変換先…

JSONの文字列変換(JSON.dumps)をワンライナーのコマンド実行で実現する

コマンドでの作業で、pythonのコードを書くまででない場合の方法。 変数"POLICY"に設定したJSONを、pythonで文字列に変換して、変数"POLICY_ESCAPE"に格納する。 JSON→文字列にエンコード やること このJSONを、 { "Version": "2012-10-17", "Statement": [ …

Python3でナノ秒の計測をする方法

Pytho処理時間をナノ秒で計測する方法です。python3.7で追加された、time.clock_gettime_ns()を利用することで実現しています。

お名前.comドメイン取得し、Route53のDNS登録をしてLet's Encryptの無料の証明証を取得する手順の全体説明

検証で自己署名証明書(オレオレ証明書)でない証明書が必要だったのですが、お金がかけられなかったのでお名前.comで安いドメインを取得し、Let's Encryptで無料証明書を取得してAWS上で検証をしました。この記事はその時の手順をまとめたものです。

AmazonLinux2でLet's EncryptでCertbot改造せずに証明書を取得する手順

Let's Encryptから無料のサーバ証明書(ワイルドカード証明書)を取得し、(複数の)apacheサーバに証明書を組み込む手順を説明してます。Amazon Linux2でLet's EncryptをググるとCertbotを改造するケースが多いですが、この手順では引数を工夫することで改造な…

RHEL7.1でENA(Elastic Network Adapter)を利用する手順

ENA(Elastic Network Adapter)は、シングルルート I/O 仮想化 (SR-IOV) を使用したAWSの拡張ネットワーキングです。RHEL7.1にはこのENAのドライバが含まれていないため、RHEL7.1環境でENAを利用する場合は個別にインストールする必要があります。この記事は…

RHUIとredhat社のインストールメディアのrpmパッケージファイルの中身に差異があるか確認してみた→結果差異はない

概要 RHUIとredhat社がカスタマーポータルで提供しているrpmパッケージの中身に差異があるのかどうかという話があったので、2つのファイルのdiffをとって確かめてみた。 →結果、差異はなかった。 確認方法 redhat社のカスタマーポータルRHEL7.5のDVDを取得(…

yumで特定のバージョンのrpmパッケージとそのパッケージの依存パッケージをダウンロードする

yumレポジトリに接続できない環境の場合、別の環境で"yumdownloader --resolve 対象パッケージ"で必要なrpmパッケージをダウンロードして持ち込むことでアップデートできます。またyumレポジトリの古いバージョンのパッケージを表示する場合は、”yum --showd…

ECRにdockerログインしてImageをpush/pullしたりリポジトリやイメージ一覧取得)する手順

dockerdでECRの認証情報を取得して、ECRリポジトリを作成し、docker イメージを/push/pullする手順

オレオレ証明書をワンライナーで作る方法

自己署名証明書(オレオレ証明書)を作る時、コマンドを3回叩いたり、コマンド実行したら対話的に入力したりで簡単にバッチ化できないかなぁ〜と調べたメモです。結論は、openssl req -x509 -days 36500 -newkey rsa:2048 -nodes -out ${URLNAME}.crt -keyout…

vimの設定と操作時のTips

vimを利用する時の設定と操作時のメモです。 1. ~/.vimrc設定 " setting set fenc=utf-8 "文字コードをUFT-8に設定 set nobackup " バックアップファイルを作らない set noswapfile " スワップファイルを作らない set showcmd " 入力中のコマンドをステータ…

VPC閉塞網からyumリポジトリにアクセスする(Amazon Linux & RHEL)

VPCからインターネットへの外の通信をさせないようにしている環境を想定した検証環境で、rpmパケケージ追加をしようとして、yumリポジトリとの通信ができずハマったのでまとめました。結論は、(1)Amazon Linuxは、「S3のVPC Endpointを設ける」、(2)RHELは、…

AWS 特定のAMIの各リージョンのImageID一覧を取得するシェル

特定の種類のAMIについて、各リージョンのImageIDを取得し、CSV形式で出力するシェルスクリプトです。 例えば、SQL Server Web Editionが含まれているLicense-includeなwindowsインスタンスの各リージョンのImageIDを知りたいとかいうときに利用します。

RHEL7 on EC2にdockerをセットアップする手順

RHEL7 on EC2(License Included)でのdockerセットアップ手順を記載します。 Amazon Linux2へのdockerセットアップ手順(との違いは、RHUIのEPELレポジトリを有効化し、dockerをインストールするところです。

EC2(Amazon Linux2)にprivateなdocker registryの作るメモ

* 1.はじめに 検証用にプライベートなdocker registryをAWS EC2上のAmazon Linux2に作った時のメモです。レジストリを立てて、別のサーバからdockerイメージをpush/pullして確認するまでを記録しています。 内容は、[https://qiita.com/zknzfz/items/13d5d07…

LinuxブロックデバイスとNFSとネットワークの関係性

会社でディスク(ブロックデバイス)とNFSの違いはという話題になったので、Linux kernelの中のブロクデバイス、NFS(ファイルシステム)、ネットワークの関係をざっくりしたポンチ絵に落としてみました。(簡素化するため箸折っていたり、そもそも私の理解が曖昧…

Amazon Linux2にdockerをセットアップする手順

Amazon Linux2上にdocker環境を作った時のメモです。 手順 インスタンスを立ち上げて、sshログインしてからの手順です。 (1)dockerのインストール sudo yum -y update sudo yum -y install docker (2)dockerサービスの起動 最初の"start"でdockerサービスを…

EC2でnetconsoleを使ってカーネルメッセージを取得する

EC2インスタンス(Amazon Linux2)で、netconsoleを使ってカーネルメッセージを別サーバに飛ばして見る設定のメモです。ncatを利用しnetconsoleサーバを一時的に作る方法とsyslogサーバに飛ばす方法の両方を説明します。