Edited at

[JAWS-UG CLI] Amazon Linux上でAWS CLI環境を整備する

AWS CLIハンズオンのための環境構築手順(Amazon Linux版)です。

適宜更新していきます。


前提条件


1. AWS CLIのバージョン確認&補完設定


1.1. バージョン確認


コマンド

aws --version



結果

aws-cli/1.7.36 Python/2.7.9 Linux/3.14.35-28.38.amzn1.x86_64



参考: AWS CLIのアップデート

AWS CLIはバージョンアップが頻繁に行なわれるので、更新方法は覚えておきましょう。


コマンド

sudo pip install -U awscli



参考: AWS CLIのデグレード

1.3.16に戻す例:


コマンド

sudo pip install awscli==1.3.16



1.2. 自動補完の設定


~/.bashrc(追加)

complete -C aws_completer aws



2. bashの設定


参考: コマンドプロンプトの設定

コマンドプロンプトが、戻り値が0のときは緑でTrueという文字列が表示され、戻り値が0以外のときは赤でFalseという文字列が表示されます。


~/.bashrc(追加部分)

PS1="\`

if [
\$? = 0 ]; then
echo
\[\e[36m\]
else
echo
\[\e[31m\]
fi
\`[\u@\h]\[\e[0m\]\n\$ "


サンプル: ハンズオン用推奨設定ファイル (~/.bashrc-handson-cli)


~/.bashrc-handson-cli

complete -C aws_completer aws

PS1="\`
if [
\$? = 0 ]; then
echo
\[\e[36m\]
else
echo
\[\e[31m\]
fi
\`[\u@\h]\[\e[0m\]\n\$ "


ハンズオン開始前に、上記の設定ファイルを読み込みます。

. ~/.bashrc-handson-cli


3. jsonlintのインストール

JSON Lintをインストールするために、npmコマンドを導入しておく必要があります。

ここではnodebrewを使います。


3.1. nodebrewインストール


コマンド

curl -L git.io/nodebrew | perl - setup



結果

Fetching nodebrew...

Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================



3.2. .bashrc

~/.bashrcにPATHを追記します。


.bashrcに追記

echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc



コマンド

which nodebrew



結果(例)

~/.nodebrew/current/bin/nodebrew



3.3. nodeのバイナリをインストール

nodeをバイナリでインストールします。(v6.10.0の例)


コマンド

nodebrew install-binary latest



コマンド

nodebrew use latest

node -v


結果(例)

v9.6.0


自動的にnpmもインストールされているはずです。


コマンド

which npm



結果(例)

~/.nodebrew/current/bin/npm



コマンド

npm -v



結果(例)

5.6.0



3.4. jsonlintインストール

jsonlintをインストールします。


コマンド

npm install jsonlint -g


-gを付けないとインストールに失敗するようです。


コマンド

which jsonlint



結果(例)

~/.nodebrew/current/bin/jsonlint



3.5. jsonlintコマンドのテスト


正常サンプル


コマンド

echo '{"key":"value"}' | jsonlint 



結果

{

"key": "value"
}


異常サンプル


コマンド

echo '{"key"}' | jsonlint 



結果

[Error: Parse error on line 1:

{"key"}
------^
Expecting ':', got '}']


4. Route53作業用オプション


whoisコマンドの導入 (Amazon Linux)

Amazon Linuxの場合、標準でwhoisコマンドがはいっていないので、ここでは日本語対応(らしい)jwhoisをインストールします。

(jwhoisは、.mlなどのマイナーなドメインのWhoisDBは、手動でWhoisホストを指定しないとダメなようです...)


コマンド

sudo yum install jwhois -y



コマンド

which whois



結果(例)

/usr/bin/whois


OSXやFreeBSDでは、whoisコマンドは標準で利用可能です。


5. CloudFormation作業用オプション

CloudFormationでYAMLを利用するときに必要となります。

(pipのインストール手順を追加予定)


5.1. yamllintのインストール


コマンド

sudo /usr/local/bin/pip install yamllint



5.2. yamllintの確認


コマンド

which yamllint



結果(例)

/usr/local/bin/yamllint



コマンド

yamllint -v



結果(例)

yamllint 1.10.0



5.3. yamllintの設定


コマンド

mkdir -p ~/.config/yamllint/


YAMLドキュメントの最初に'---'が無くても警告が出ないようにします。


コマンド

cat << EOF > ~/.config/yamllint/config

rules:
document-start:
present: false
EOF