Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
77
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated 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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
77
Help us understand the problem. What are the problem?