EC2のTermination Protection設定を確認する
EC2インスタンスのTermination Protection設定をまとめて調べようと思い、とりあえずスクリプトを書いてみたので、メモ。
#!/bin/bash INTERVAL=2 HEADER='instance-id,disable_api_termination' INSTANCE_IDS=$(aws ec2 describe-instances | jq -r '.Reservations[].Instances[].InstanceId') echo ${HEADER} for INSTANCE_ID in ${INSTANCE_IDS} do PROTECTION=$(aws ec2 describe-instance-attribute --instance-id ${INSTANCE_ID} --attribute disableApiTermination | jq -r '.DisableApiTermination.Value') echo "${INSTANCE_ID},${PROTECTION}" sleep ${INTERVAL} done
実行するとこんな感じ。
instance-id,disable_api_termination i-xxxxxxxx,true i-xxxxxxxx,true i-xxxxxxxx,true
とりあえず感がありますが、今日はこんなところで。
Virtualboxで作成したCentOS7が起動しない
相当しばらくぶりの投稿です。今日はVirtualboxの話題。
VirtualBox上でCentOS7の仮想マシンを先日作ったのですが、
これを起動しようとしたところ、起動できず。
復旧する羽目になりました。その時の対応メモです。
環境
- VirtualBox(5.2.12r122591)
- CentOS(7.5.1804)
起動直後
起動直後はこんな感じでした。完全にダメですね。
レスキューモードで起動
ということでレスキューモードで立ち上げます。
復旧
参考リンクのページを参考に「grubx64.efi」をコピーしました。
参考リンクのコマンドをそのまま参考にしながら進めましたが、「/dev/centos_gateway/root」「/dev/sda2」「/dev/sda1」はレスキューモードにしたタイミングで既にマウントされていました。
vgchange -ay mount /dev/centos_gateway/root /mnt/sysimage mount /dev/sda2 /mnt/sysimage/boot mount /dev/sda1 /mnt/sysimage/boot/efi mount --bind /proc /mnt/sysimage/proc mount --bind /sys /mnt/sysimage/sys mount --bind /dev /mnt/sysimage/dev chroot /mnt/sysimage cp -p /boot/efi/EFI/centos/grubx64.efi /boot/efi/EFI/BOOT/ exit umount -R /mnt/sysimage shutdown -r now
これでローカルからブートしたらもとに戻せました。
今日はこんなところで。
パスワード変更時に「/usr/share/cracklib/pw_dict: error reading header」エラーが出たときの対処メモ
普段作業用に使っているVMのパスワードがなぜか変更できなくなったので、
そのとき調査したことと、復旧で行ったことをメモしておきます。
環境はCentOS6.6の64ビット版です。
起きたこと
passwd コマンドを使って、パスワードを変更しようとしたところ、以下のようなメッセージが出ました。
# passwd ユーザー root のパスワードを変更。 新しいパスワード: /usr/share/cracklib/pw_dict: error reading header PWOpen: 成功です
調べた
参考リンクを元に環境を調べたところ、cracklibの辞書ファイルが0バイトになっていたため、辞書ファイルが壊れてしまったと推測。
# cd /usr/share/cracklib/ # ls -la 合計 264 drwxr-xr-x. 2 root root 4096 7月 21 12:13 2014 . drwxr-xr-x. 78 root root 4096 5月 31 16:24 2016 .. -rw-r--r--. 1 root root 1024 6月 25 15:39 2011 cracklib-small.hwm -rw-r--r--. 1 root root 235109 6月 25 15:39 2011 cracklib-small.pwd -rw-r--r--. 1 root root 12416 6月 25 15:39 2011 cracklib-small.pwi -rw-r--r--. 1 root root 360 6月 25 15:39 2011 cracklib.magic -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.hwm -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.pwd -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.pwi
直す
該当するファイルが含まれるRPMパッケージを確認すると「cracklib-dicts」であることが分かったので、これをインストールしなおすことにしました。
# rpm -qf /usr/share/cracklib/pw_dict.hwm cracklib-dicts-2.8.16-4.el6.x86_64
パッケージの依存関係に「pam」があったので、強制再インストールにすることにしました。
# rpm -q --whatrequires cracklib-dicts pam-1.1.1-20.el6.x86_64 # yumdownloader cracklib-dicts # rpm -Uvh --force cracklib-dicts-2.8.16-4.el6.x86_64.rpm
cracklib-dictsパッケージの再インストールを行った結果、パスワード変更ができるようになりました。
# passwd ユーザー root のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd: 全ての認証トークンが正しく更新できました。
今日はこんなところで。
awscliでWindowsインスタンスのパスワードを取得する
自分用のメモとしてWindowインスタンスのパスワードを取得する方法を。
通常だとマネジメントコンソール上で秘密鍵ファイルからAdministratorユーザーのパスワードを取得しますが、
結構面倒くさいので、コマンドラインからパスワードを取得する方法を試しました。
awscliでコマンドが用意されています。
$ aws ec2 get-password-data --instance-id i-xxxxxxxx { "InstanceId": "i-xxxxxxxx", "Timestamp": "2016-08-27T07:58:22.000Z", "PasswordData": "\r\nAuEqrqN9xg7SrLgheizv0Y9jGVLzgVj+SxStcNzduNRjiOZzOzkFpqTiJeCQOgsXlhVTaytOqBiK3l05UDcvPXQL51i5wXB/RFy1DJlTQkBPaP4O6n28xBvDCUBS5VXhApNJgrZUUDkNfMXm4ZO1vktJzdXB0zkMe1mOi1zwJC9J5VwcKPD4YqADhH3z7FutNhDyJvjPsxlcUiTbZo0Sv54caeY1GQMhMChP9gj8QeC9+d0aKzuNXCHmbygt0mcv9s1iq+8/a+C+P9aA18h8NkeAGIwMt9RdsojjaRZLtNtJMg0mAJmJ2EfsoSnO8fEiAwjEd4eJ9RqIYHO7YLpXpA==\r\n"
そのままだと暗号化された状態のパスワードが戻ってくるので、復号するには秘密鍵ファイルを指定します。
$ aws ec2 get-password-data --instance-id i-xxxxxxxx --priv-launch-key /home/myuser/.ssh/id_rsa { "InstanceId": "i-xxxxxxxx", "Timestamp": "2016-08-27T07:58:22.000Z", "PasswordData": "XXXXXXXXXX" }
これで少し作業が楽になりそうです。
今日はこんなところで。