AWS
aws-cli

[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をインストールします。

コマンド
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