以前、下記でPython版のAWSコマンドラインツールを紹介しましたが
Python版AWSコマンドラインツールをCentOS6で使ってみたデフォルトでの出力だJSON形式となっていました。
# aws --region=ap-northeast-1 ec2 describe-instances
{
...
}
一見、JSONでの出力は扱いづらそうに見えますが、下記の"jq"と呼ばれるプログラムを
利用することで、逆に簡単に出力を調整することができるようになります。
http://stedolan.github.com/jq/
基本的にはソースからビルドしてインストールするのですが、せっかくなので、
下記のようにSPECファイルを作成してRPMからインストールしてみました。
suz-lab-centos-ami/share/rpmbuild/SPECS/jq.spec at master
%define version 1.2
Summary: Command-line JSON processor
Name : jq
Version: %{version}
Release: 0%{?dist}.suzlab_1
Source0: jq-%{version}.tar.gz
URL : https://github.com/stedolan/jq
License: BSD
Group : Applications/System
%description
jq is a command-line JSON processor
%prep
%setup
%build
echo "Building in: \"$(pwd)\""
make
%install
echo "Installing to: \"${RPM_BUILD_ROOT}\""
install -d -m 0755 ${RPM_BUILD_ROOT}/usr/bin
install -m 0755 jq ${RPM_BUILD_ROOT}/usr/bin
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(-,root,root)
%{_bindir}/jq
%changelog
* Sat Jan 12 2013 Hiroyasu Suzuki <suzuki@suz-lab.com> - 1.2-0_1
- Initial Release
%pre
%post
RPM作成前の準備
ビルドに必要なパッケージをインストールします。
# yum -y install make flex bison gcc ...
SPECファイルの取得
# cd /opt/suz-lab/ # rm -rf var/log/syslog/all.log # git pull ...※今回は"SUZ-LAB AMI"上での作業なので"git pull"してます。
RPM作成時の設定ファイルの作成
# cat .rpmmacros %_topdir /opt/suz-lab/share/rpmbuild
RPMの作成
ソースファイルの準備
# cd /opt/suz-lab/share/rpmbuild/SOURCES/ ... # curl -OL https://github.com/stedolan/jq/archive/jq-1.2.tar.gz ... # tar xvzf jq-1.2.tar.gz jq-jq-1.2/ ... # mv jq-jq-1.2 jq-1.2 # tar cvzf jq-1.2.tar.gz jq-1.2※展開時のディレクトリがjq-1.2となるようにしています。
いつもの"rpmbuild -ba"です。
# cd /opt/suz-lab/share/rpmbuild/SPECS/ # rpmbuild -ba jq.spec ...
RPMのインストールと確認
いつもの"rpm -Uvh"です。
# cd /opt/suz-lab/share/rpmbuild/RPMS/x86_64 # rpm -Uvh jq-1.2-0.el6.suzlab_1.x86_64.rpm ...
"jq"を使って、最初のコマンド(EC2情報を取得)からインスタンスIDのみ抜き出してみます。
# aws --region=ap-northeast-1 ec2 describe-instances \ > | jq ' .reservationSet | .[] | .instancesSet | .[] | .instanceId ' "i-aaaaaaaa" "i-bbbbbbbb" "i-cccccccc" "i-dddddddd"
"SUZ-LAB Repository"に入れたいなー...
--------
http://www.suz-lab.com


0 コメント:
コメントを投稿