かべぎわブログ

ブログです

インスタンスIDの一覧をPythonのリスト内包表記で取得する

概要

EC2インスタンスのIDの一覧をPythonのリスト内包表記をつかってかんたんに取得してみます。

前提

いずれも以下の様な感じで宣言してあるとする。

import boto3
ec2 = boto3.client('ec2')
response = ec2.describe_instances()

リスト内包表記の場合

こんなかんじでかんたんにできる

instance_id_list  = [response['Instances'][0]['InstanceId'] for response in response['Reservations']]
print(instance_id_list)
# ['i-XXXXXX', 'i-YYYYYY']

リスト内包表記じゃない場合

こんなかんじでループさせて配列のなかに入れあげる必要があった。

instance_id_list = []
for reservations in response['Reservations']:
    instance_id_list.append(reservations['Instances'][0]['InstanceId'])
print(instance_id_list)
# ['i-XXXXXX', 'i-YYYYYY']

おわりに

多少わかりにくいみたいなところはあるけれどね

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

特定のタグがついたロールにスイッチロールするIAMポリシー

概要

特定のタグがついたロールにスイッチロールするようなIAMポリシーです。

IAMポリシー

かんたんな説明

このポリシーの場合だと、environmentタグにdevという値が設定されているロールにスイッチロールすることを許可しています。

こんなかんじにタグでスイッチロール許可を与えることで、スイッチロールしたいロールのARNをポリシーに書く必要がなくなります。
なのでスイッチロールしたいロールが増えてもこのポリシーを書き換える必要はなく、スイッチロールしたいロールにタグを付けてあげるだけでよくなります。

おわりに

ひさびさに書いた

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

mysqlのパスワードをコマンドラインからわたして接続する

こんなかんじで--password='パスワード'とすることでパスワードをコマンドラインからわたすことができます。

$ mysql -h example.com -P 3306 -u ユーザ名 --password='パスワード'

ただ、あまりこの使い方は推奨されていない。
平文でパスワード書くことになっちゃうし。
(でもこうやってつかいたいときもあるよね)

シェルスクリプトとかに書いてcronで裏でうごかすとかそういうユースケースだとこれを利用せざるを得ないのかな…?

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

BMIを計算するシェルスクリプトを書いた

概要

戯れにBMIを計算してくれるシェルスクリプトを書いてみた。

スクリプト

こんなかんじ。

動かしてみるとこんなかんじ。

bmi.sh 身長 体重でうごく。

ちなみにいまの身長体重はこんなかんじ。
だいぶやせた。

$ ./bmi.sh 178 68
21.46


年始はこのくらいあった。

$ ./bmi.sh 178 78
24.61

おわりに

2ヶ月とすこしで10kgちかくやせた。
どうやってやせたかは別の機会に書く。

シェルスクリプトマガジン vol.56

シェルスクリプトマガジン vol.56

最近読んだ本とか見た映画とか漫画とか⑤

ここ2週間で読んだ本とか映画とか漫画とか

映画

みおわった。

マイティ・ソー バトルロイヤル

ラグナロク

ブラックパンサー

なんか英語がすごくききとりやすかった。

グエムル -漢江の怪物-

おもしろかったす。PS3くらいのCG

GODZILLA 怪獣惑星: パート1: 怪獣惑星

面白かったと思う。たぶん。

www.netflix.com

ゲーム

クリアした。

Crypt of the NecroDancer

むずかしかった。12時間くらい。

braceyourselfgames.com

何回閉じても無駄ですよ~のシェルスクリプトを書いた

概要

何回閉じても無駄ですよ~のシェルスクリプトを書いた。

「何回閉じても無駄ですよ~」が無限にでる。
Ctrl-cで終わらせることはできない。

スクリプト

うごかしてみる

実際にうごかしてみるとこんなかんじになる。

$ ./arrest.sh 
何回閉じても無駄ですよ~
何回閉じても無駄ですよ~
^C何回閉じても無駄ですよ~
^C何回閉じても無駄ですよ~
^C何回閉じても無駄ですよ~

終了させる方法

何回閉じても無駄なのではなくて単純にSIGINTをトラップしているだけ。
なので他の方法で止めればいい。

たとえばCtrl-zでこのスクリプトを一時停止させてからkill -9 プロセスIDとかpkill スクリプト名してあげればよい。

おわりに

おわり。

AnsibleでIAMポリシーを作成する

概要

Ansibleを利用してIAMポリシーを作成してみたいと思います。

playbook

playbookとそれでつかうJSONはこんなかんじ。

JSONに記載したポリシーのとおりにIAMポリシーが作成されます。

実行結果確認

ポリシーができている。

$ aws iam list-policies --query 'Policies[].PolicyName' | grep admin_policy
    "admin_policy", 

なかみもplaybookで指定したJSONとおなじであることがわかる。

$ aws iam get-policy-version --policy-arn arn:aws:iam::123456789012:policy/admin_policy --version-id v1
{
    "PolicyVersion": {
        "CreateDate": "2019-03-05T14:31:43Z", 
        "VersionId": "v1", 
        "Document": {
            "Version": "2012-10-17", 
            "Statement": [
                {
                    "Action": "*", 
                    "Resource": "*", 
                    "Effect": "Allow"
                }
            ]
        }, 
        "IsDefaultVersion": true
    }
}

おわりに

まあべんりよね。

Ansible実践ガイド第2版 impress top gearシリーズ

Ansible実践ガイド第2版 impress top gearシリーズ

RLoginでデフォルト設定を作成する

概要

ターミナルソフトであるRLoginでデフォルトの設定を作成する方法をご紹介します。

これをつかうことでホストが増えるたびにフォント変更して、右クリックの挙動変えて、選択でクリップボードいれて…みたいな煩わしい設定から開放されます。

こうやる

じぶんごのみに設定したホストを右クリックして「標準の設定にする」を選択します。
f:id:kabegiwakun:20190305230811p:plain

その後、新規ホストの作成時などに以下のチェックボックスを有効にしてあげるとその設定が使用されます。
f:id:kabegiwakun:20190305230958p:plain

おわりに

ずっとしらなかったよ…

ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習

ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習

シェルスクリプトでコマンドの実行を待ち合わせる

概要

シェルスクリプトで実行中のコマンド(プロセス)の完了を待ってから、処理をしてみたいと思います。

waitコマンドを利用してあげることでそれを実現することができます。

スクリプト

だいたいこんなかんじ。

うごかしてみる

実際にうごかしてみるとこんなかんじになる。
timeコマンドで実際に何秒かかっているかどうかもみてみる。

$ time ./wait.sh
待ち合わせ終わった

real    0m6.011s
user    0m0.003s
sys     0m0.006s

最長のsleepである6秒かかっていることがわかる。
これはsleep 6を待ち合わせた結果。

おわりに

なんか処理がながいやつをループして実行するとかするときに全体の処理時間を短縮させることができるよ。

新しいLinuxの教科書

新しいLinuxの教科書

AWSのEC2のLinuxにssh接続するときのユーザ名まとめ

AWSのEC2のLinuxにssh接続するときのユーザ名をまとめてみた。

まとめ

こんなかんじ。

ディストリビューション ユーザ名
Amazon Linux ec2-user
CentOS centos
Debian admin または root
Fedora ec2-user または fedora
RHEL ec2-user または root
SUSE ec2-user または root
Ubuntu ubuntu



徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書 徹底攻略シリーズ

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書 徹底攻略シリーズ

最近読んだ本とか見た映画とか漫画とか④

ここ1週間で読んだ本とか映画とか漫画とか

よんだ。

ジェフ・ベゾス 果てなき野望

Amazonこわい

ジェフ・ベゾス 果てなき野望?アマゾンを創った無敵の奇才経営者

ジェフ・ベゾス 果てなき野望?アマゾンを創った無敵の奇才経営者

映画

みおわった。

スイス・アーミー・マン

キャストアウェイのウィルソンがハリーポッター

ゲーム

クリアした。

Reigns

むずかしかった。

Reigns: Kings & Queens|オンラインコード版

Reigns: Kings & Queens|オンラインコード版

漫画

よんだ。

地球へ

よくまとまっていた。

地球(テラ)へ… (1) (中公文庫―コミック版)

地球(テラ)へ… (1) (中公文庫―コミック版)

AnsibleでLinuxサーバのOSを再起動する

概要

AnsibleでLinuxサーバのOSを再起動してみたいと思います。

playbook

たったこれだけ。

おわりに

むかしはWindowsの再起動のモジュールしかなかったんだけどAnsible2.7からLinux用のモジュールが追加されていた。



Ansible実践ガイド第2版 impress top gearシリーズ

Ansible実践ガイド第2版 impress top gearシリーズ