Akamai CLIのインストール

## Akamai CLIについて
Akamai コマンドライン インターフェース (Akamai CLI) は、WindowsやLinuxなどのコマンドラインから直接Akamaiのプラットフォームと製品を管理できる拡張可能なツールキットです。Webベースの統合管理用インターフェースであるAkamai Control Center (ACC) にログインしなくても作業を行うことができます。APIでも基本的に同様のことが実現可能ですが、用途に応じて使い分けることができます。　
今回はWindows及びLinuxについてAkamai CLIのインストール方法をご紹介します。

## Akamai CLIのインストール (Windows)
Windows用のAkamai CLIバイナリーをダウンロードします。　寄稿時は**akamai-v1.5.2-windows386.exe**が該当します。
https://github.com/akamai/cli/releases

akamai-{VERSION}-{PLATFORM}.sig も併せてダウンロードし、WindowsのコマンドプロンプトでSHA256ハッシュが適切かを確認します。
{VERSION}、{PLATFORM}はダウンロードしたファイルに合わせます。
```
> certutil -hashfile akamai-{VERSION}-{PLATFORM}.exe sha256
```

ダウンロードした exeファイルを実行して、Akamai CLIをインストールする際に、PATH環境変数一覧よりインストール先を選択する項目がありますので、exe実行前に、あらかじめフォルダーを作成し、PATH環境変数に追記しておきます。
管理者権限がない場合はユーザー権限で書き込みが可能なフォルダーを作成します。
Windowsの検索バーに「環境変数」と入力し、「環境変数を編集」を選択してプロパティを開いた後、ユーザーの環境変数または、システム環境変数の Pathを選択し、編集します。
ここでは、**C:\Users\{ユーザー名}\tools**フォルダーを作成し、ユーザーの環境変数にフォルダーを追記します。
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821330/9ed29ce7-1a67-a25c-4ca2-fdbf9b9f7a93.png">


準備が整ったらコマンドプロンプトにてダウンロードしたexeファイルを実行します。
インストール先が選択できますので、一覧から先ほど作成したフォルダーを選択します。
もし作成フォルダーが表示されない場合はコマンドプロンプトを再実行するか環境変数を再確認します。
```
> akamai-<VERSION>-<PLATFORM>.exe
? Akamai CLI is not installed in your PATH, would you like to install it? [Y/n]:  yを押下
```
pathはスクロールにて続きが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821330/7a1601eb-b513-4782-66ad-fb5e0ac3f648.png)

? Akamai CLI can auto-update itself, would you like to enable daily checks? [Y/n]:  については
今回はNo(n)とします。 作成したフォルダーへのインストールが完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821330/7d13dce5-eac2-4821-6e14-8f8b8e73bb04.png)

もし以下のメッセージが出た場合は手動でダウンロードしたファイルを削除します。他のプロセスがファイルを掴んでいるため自動削除できない通知がされています。
```
Installing to c:\users\user01\tools\akamai.exe... ... [FAIL]
remove C:\Users\user01\Desktop\akamai-v1.5.2-windows386.exe: The process cannot access the file because it is being used by another process.
```

コマンドプロンプトにてakamaiコマンドが実行できることを確認します。
```
> akamai
Usage:
  akamai [global flags] command [command flags] [arguments...]

Commands:
  config
  install (alias: get)
  list
  search
  uninstall
  update
  upgrade
  help

Global Flags:
  --edgerc value, -e value                 Location of the credentials file [%AKAMAI_EDGERC%]
  --section value, -s value                Section of the credentials file [%AKAMAI_EDGERC_SECTION%]
  --accountkey value, --account-key value  Account switch key [%AKAMAI_EDGERC_ACCOUNT_KEY%]
  --help                                   show help (default: false)
  --bash                                   Output bash auto-complete (default: false)
  --zsh                                    Output zsh auto-complete (default: false)
  --proxy value                            Set a proxy to use
  --version                                Output CLI version (default: false)

Copyright (C) Akamai Technologies, Inc
```




## Akamai CLIのインストール (Linux)
Linux用のAkamai CLIバイナリをダウンロードします。　寄稿時は**akamai-v1.5.2-linuxamd64**が該当します。
https://github.com/akamai/cli/releases

上記ページよりダウンロードリンクを取得しAkamaiCLIをダウンロードします。
{VERSION}、{PLATFORM}はダウンロードしたファイルに合わせます。
```
$ wget https://github.com/akamai/cli/releases/download/{VERSION}/akamai-{VERSION}-{PLATFORM}
```

akamai-\<VERSION>-\<PLATFORM>.sig も併せてダウンロードし、SHA256ハッシュが適切かを確認します。
```
$ sha256sum akamai-{VERSION}-{PLATFORM}
3583b2ec0ad1f17b051bb9a48060cb25b25426c82bc14826abd2a11204a50493  akamai-{VERSION}-{PLATFORM}
```

今回は、/usr/local/bin　配下に配置します。必要に応じてPATHを付与します。
```
$ chmod +x ./akamai-{VERSION}-{PLATFORM}
$ sudo  mv akamai-{VERSION}-{PLATFORM} /usr/local/bin/akamai
[sudo] password for user:
```

akamaiコマンドを実行し初期設定を行います。
```
$ akamai
```
今回はNo(n)とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821330/3c357315-12bc-5a51-ef9e-cec99677940a.png)


再度akamaiコマンドを実行し、動作することを確認します。
```
$ akamai
Usage:
  akamai [global flags] command [command flags] [arguments...]

Commands:
  config
  install (alias: get)
  list
  search
  uninstall
  update
  upgrade
  help

Global Flags:
  --edgerc value, -e value                 Location of the credentials file [$AKAMAI_EDGERC]
  --section value, -s value                Section of the credentials file [$AKAMAI_EDGERC_SECTION]
  --accountkey value, --account-key value  Account switch key [$AKAMAI_EDGERC_ACCOUNT_KEY]
  --help                                   show help (default: false)
  --bash                                   Output bash auto-complete (default: false)
  --zsh                                    Output zsh auto-complete (default: false)
  --proxy value                            Set a proxy to use
  --version                                Output CLI version (default: false)

Copyright (C) Akamai Technologies, Inc
```


## APIクレデンシャルの準備（共通）
Akamai CLIを利用するためには認証時に、APIクレデンシャルが必要です。
作成、準備方法については以下をご参考ください。

https://qiita.com/kabe-akam/items/499507d19220b44b4901



## パッケージのインストール（共通）
Akamai CLIは利用する機能に応じてパッケージを追加することができます。
インストール可能なパッケージはこちらで確認が可能です。
https://github.com/akamai/?q=cli&type=&language=&sort=


purgeのパッケージをインストールします。
```
$ akamai install purge
Attempting to fetch command from https://github.com/akamai/cli-purge.git... ... [OK]
Installing... ... [WARN]
? Binary command(s) found, would you like to download and install it? Yes
Downloading binary... ... [OK]     u like to download and install it? (Y/n) y

Installed Commands:

  config
    Manage configuration
  help
    Displays help information
  install (alias: get)
    Fetch and install packages from a Git repository
  list
    By default, displays installed commands. Optionally, can display package commands from Git repositories
  purge (alias: purge/purge)
    Purge content from the Edge
  search
    Search for packages in the official Akamai CLI package repository
  uninstall
    Uninstall package containing <command>
  update
    Update one or more commands. If no command is specified, all commands are updated
  upgrade
    Upgrade Akamai CLI to the latest version

See "akamai.exe help [command]" for details.

```

再度 akamaiコマンドを実行すると、purgeのパッケージがインストールされていることがわかります。
同様にakamai install [パッケージ名] で必要な機能を追加することができます。
```
$ akamai
（省略）
  upgrade
  help
Installed Commands::
  purge (alias: purge/purge)
（省略）

```

これによりAkamai CDNのキャッシュPurge（削除/無効）も簡単に行うことができます。
```
$ akamai purge invalidate https://www.example.com/sample.gif
            Purging...... [OK]
Purged 1 objects (ETA: 5 seconds)
Purge ID: eiup-Xg2vXXXXXXXXXXoqKumF
```

なおパッケージによっては依存関係となるPython等をインストールする必要があります。
https://github.com/akamai/cli
各パッケージの詳細ページも併せてご参考ください。
https://github.com/akamai/?q=cli&type=&language=&sort=



## パッケージのアップデート（共通）
akamai updateを実行することでインストールしたパッケージを最新版にすることができます。
```
$ akamai update
Attempting to update "purge" command... ... [OK]
Installing... ... [OK]
```

## Akamai CLIのアップデート（共通）
akamai upgradeを実行することでAkamai CLIコマンドを最新版にすることができます。
```
$ akamai upgrade
Checking for upgrades... ... [OK]
You can find more details about the new version here: https://github.com/akamai/cli/releases
? New update found: v1.5.2. You are running: 1.5.1. Upgrade now? Yes
Upgrading Akamai CLI ... [OK]
akamai version 1.5.2
```

## まとめ
Akamai CLIを用いることで、Akamai CDN / Web Security / Enterprise Securityなど様々なソリューションをコマンドラインにて管理することができます。定期的に行う作業の容易な実行、自動化ツールへの組み込みなどで活用してみてください。


## 関連記事

Homebrewやソースコードからインストールする場合はこちらを参考にしてください。
https://techdocs.akamai.com/developer/docs/about-clis

akamaiコマンドのオプション（引数）についてはこちらを参考にしてください。
https://github.com/akamai/cli