akamai / cli

Manage and configure Akamai from the Command Line.
https://techdocs.akamai.com/developer/docs/about-clis
Apache License 2.0
211 stars 84 forks source link
akamai akamai-cli akamai-devexp cli devexp devexp-cli

Akamai CLI

Build Status Go Report Card GitHub release License GoDoc

Use Akamai CLI to configure Akamai platform and products directly from the command line. You can install ready-to-use product packages or build your own custom solutions to manage from CLI.

Benefits

Available Packages

Browse the list of available packages.

Install Akamai CLI

Akamai CLI doesn't have any dependencies and is quick to install. However, you may need an additional runtime for packages depending on the programming language they are based on.

Install Akamai CLI by downloading a release binary. See instructions for various operating systems.

You can also use Homebrew, Docker, or compile from source.

System dependencies for Python-based packages

If you're using a Python-based CLI package, install these extra dependencies:

Install from binaries

Follow the instructions for your operating system.

Linux and macOS

Once you download the appropriate binary for your system, make it executable, and optionally make it available in your $PATH. Run the following commands:

$ chmod +x ~/Downloads/akamai-<VERSION>-<PLATFORM>
$ mv ~/Downloads/akamai-<VERSION>-<PLATFORM> /usr/local/bin/akamai

Windows

Once you download the appropriate binary for your system, simply execute the binary from the command line. For example:

$ akamai.exe help

Install with Homebrew

You can also install Akamai CLI using the Homebrew package manager. If you haven’t used it before, check Homebrew documentation for system requirements and read the installation guide.

Once set up, simply run:

$ brew install akamai

This command compiles and globally installs the binary with all necessary dependencies.

Install with Docker

A container with Akamai CLI and pre-installed public packages is also available in Docker. All images are built using Docker files from the akamai-docker repository. You can find all Akamai builds on Docker Hub.

To start, create and run the container with Akamai Development Environment:

$ docker run -it -v $HOME/.edgerc:/root/.edgerc:ro akamai/shell

Note: This mounts your local $HOME/.edgerc into the container. To change the local path, modify the -v argument.

The akamai command and basic packages are already installed. See the akamai-docker repository for more details.

If you want to open Akamai Development Environment when calling the akamai command, add the following line to your .bashrc, .bash_profile, or .zshrc files:

alias akamai='docker run -it -v $HOME/.edgerc:/root/.edgerc:ro akamai/shell'

If you want to use a local .akamai-cli directory to configure and manage your installed packages, modify the -v argument:

$ docker run -it -v $HOME/.akamai-cli:/cli/.akamai-cli akamai/shell

This command installs the CLI and persists the configuration and packages in $HOME/.akamai-docker directory.

Compile from Source

Prerequisite: Make sure you install Go 1.21 or later.

To compile Akamai CLI from source:

  1. Change the working directory:

    $ cd $GOPATH
  2. Fetch the package:

    $ git clone github.com/akamai/cli
  3. Go to the package directory:

    $ cd cli
  4. Compile the binary:

    • For Linux, macOS, and other Unix-based systems, run: go build -o akamai cli/main.go
    • For Windows, run: go build -o akamai.exe cli/main.go
  5. Move the akamai or akamai.exe binary so that it's available in your $PATH.

API credentials

Akamai-branded packages use a .edgerc file for standard EdgeGrid authentication. By default, CLI looks for credentials in your $HOME directory.

You can override both the file location or the credentials section by passing the --edgerc or --section flags to each command.

To set up your .edgerc file, see Get started with APIs.

Upgrade

Unless you installed Akamai CLI with Homebrew, you can enable automatic check for updates when you run Akamai CLI v0.3.0 or later for the first time.

When run for the first time, CLI asks you to enable automatic upgrades. If you do not agree, last-upgrade-check=ignore is set in the .akamai-cli/config file (this option will still allow you to perform manual upgrade as explained below). Otherwise, if a new version is available, CLI prompts you to download it. Akamai CLI automatically checks the new version's SHA256 signature to verify it is not corrupt. After the update, your original command executes using the new version.

For information on manual upgrade and the supported Homebrew command, see akamai upgrade in Built-in commands.

How to use Akamai CLI

All CLI commands start with the akamai binary, followed by a command, and optionally an action or other arguments.

akamai [global flags] [command] [action] [arguments...]

Global flags

Use following flags to modify the Akamai CLI behaviour or get additional information:

Built-in commands

Use the following commands to manage packages and the toolkit:

Installed commands

This commands depend on your installed packages. To use an installed command, run akamai <command> <action> [arguments], for example:

akamai property-manager new-property -p example.org -g grp_123456 -c ctr_X-XXXXXX -d prd_Web_App_Accel

For the list of supported commands, see the documentation for each package.

Custom commands

Akamai CLI provides a framework for writing custom CLI commands. See the extended Akamai CLI documentation to learn how to contribute, create custom packages, and build commands.

Before you start to build your own commands, make sure you meet these prerequisites:

  1. The package is available through a Git repository that supports standard SSH public key authentication.
  2. The executable is named akamai-<command> using dashed-lowercase, or akamai<Command> using camelCase.
  3. Verify that akamai-command help works for you. Ideally, CLI should allow for akamai-command help <sub-command>.
  4. If you're using Akamai APIs, the executable must support the .edgerc format, and must support both --edgerc and --section flags.
  5. If an action fails to complete, the executable exits with a non-zero status code.

As long as the result is executable, you can use any of the supported languages to build your commands, including Python, Go, and JavaScript.

Logging

To see additional log information, prepend AKAMAI_LOG=<logging-level> to any CLI command. You can specify one of the following logging levels:

For example, to see extra debug information while updating the property-manager package, run:

AKAMAI_LOG=debug akamai update property-manager

Each level is a progressive superset of all previous tiers. The output for debug also includes fatal, error, warn, and info logs.

If you want to redirect logs to a file, use the AKAMAI_CLI_LOG_PATH environmental variable:

AKAMAI_LOG=debug AKAMAI_CLI_LOG_PATH=akamai.log akamai update property-manager

Dependencies

Akamai CLI supports the following package managers that help you automatically install package dependencies:

If you want to use other languages or package managers, make sure you include all dependencies in the package repository.

Command package metadata

The package you install needs a cli.json file. This is where you specify the command language runtime version and define all commands included in package.

Format

Example

{
  "requirements": {
    "go": "1.8.0"
  },
  "commands": [
    {
      "name": "purge",
      "version": "0.1.0",
      "description": "Purge content from the Edge",
      "bin": "https://github.com/akamai/cli-purge/releases/download/{{.Version}}/akamai-{{.Name}}-{{.OS}}{{.Arch}}{{.BinSuffix}}"
    }
  ]
}

Akamai CLI exit codes

When you complete an operation, Akamai CLI generates one of these exit codes: