install

Usage

fugue [global options] install [options]

Options

Global options are detailed here.

-y | --yes
Suppress confirmation dialogs. The yes flag suppresses confirmation dialogs and bypasses interactive prompts by providing input to aid scripting.
-h | --help
Show help text. The help flag is available throughout the CLI in both an application-level and command-level context. It enables a user to view help text for any command within the Fugue CLI.

Definition

The install command installs the Fugue Conductor in the user’s AWS account and boots Fugue.

First, the Fugue CLI determines the target AWS account by searching for credentials in the following order:

  • The environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY; then,
  • The profile in ~/.aws/credentials or ~/.aws/config that matches the credentialProfile field in fugue.yaml; then finally,
  • The instance metadata service (IMDS), which is present only on EC2 instances and provides credentials reflecting the IAM Role of the instance.

The CLI tests the validity of the credentials and, in so doing, determines the account number and alias that they are associated with. This is the account that the install command targets.

Next, the CLI asks the user to confirm they want to install Fugue into the target AWS account with the AMI ID defined in fugue.yaml:

[ fugue install ] Installing Fugue Conductor

Install Details:

   Conductor AMI ID: ami-e0364df7
   AWS Account: <user>/xxxxxxxxxxxx

[ WARN ] Would you like to proceed with installing? [y/N]:

When the user enters y, the Fugue CLI launches a CloudFormation stack inside that AWS account using the specified AMI. As the required resources are created, the CLI displays a table showing installation progress.

Installing the Fugue Conductor into AWS account user/xxxxxxxxxxxx

FugueVpcGateway                      Complete
FugueIam                             Complete
FugueAutoScalingGroup                Working...
FugueInstanceProfile                 Complete
FugueHealthCheckDb                   Complete
FugueVpcGatewayAttachment            Complete
FugueLaunchConfiguration             Complete
FugueInternetRoute                   Complete
FugueVpc                             Complete
FugueSubnet2RouteTableAssociation    Complete
FugueRouteTable                      Complete
FugueSubnet1RouteTableAssociation    Complete
FugueResourceEventsTopic             Complete
FugueSubnet2                         Complete
FugueSubnet1                         Complete
FugueVpcSecurityGroup                Complete
-----------------------------------------------
Overall Progress     [#######################]  94%

[ HELP ] Exiting the install command while in progress (CTRL+C) will only stop progress tracking and *not* the install itself.

When the installation is complete, the CLI asks the user to wait while the Conductor boots up.

[ OK ] Fugue Conductor installed.

Booting the Conductor, please wait as this may take between 5-15 minutes...

[ HELP ] The Conductor needs to boot before it can accept commands from the CLI. Exiting the install command while in progress (CTRL+C) will only stop progress tracking and *not* the install itself or the booting process.

When booting is complete, the CLI states that Fugue is ready to receive commands again.

[ DONE ] Fugue has been successfully installed and is ready to receive commands.

Note

When the Conductor is uninstalled, the RBAC policy is removed along with all users and their credentials. If you reinstall the Conductor with install, you’ll need to apply the policy again with policy rbac-attach, and root will have a new user secret.

Using status to confirm the Fugue Conductor is done booting

If you exit the install command with CTRL+C while the Conductor is still installing or booting, you may run fugue status to determine whether the Conductor is ready to receive commands. If the Conductor hasn’t finished installing or booting, status returns an error message:

[ ERROR ] There was a problem executing this command.
   Reason: The Conductor is in the process of installing.

If the Conductor is ready to receive commands, status returns this message:

Fugue Status Report for <user>/<account> - Fri Mar 17 2017 5:31pm

State    Updated    Created    Account    FID    Alias    Last Message    Next Command
-------  ---------  ---------  ---------  -----  -------  --------------  --------------
Nothing to see here. Go create something! :-)

Examples

Changing The Region The Conductor Is Running In

While we anticipate changing this in the future, at present Fugue only supports running Conductors in the us-east-1 region.

Changing The Size Of The Conductor Instance

The Conductor instance type is m4.large by default. Currently, we do not support changing the size of the Conductor instance. If you believe you need a different size, email support@fugue.co.

Manually Setting Installation Availability Zones

If you have problems installing Fugue due to an Availability Zone (AZ) being unavailable for new resources in your account, or wish to customize the AZs used by Fugue for installation, you can manually specify the AZs that Fugue uses for the Fugue Conductor installation in your fugue.yaml. These AZs will be used when you run the fugue install command. To do this, add an entry in fugue.yaml under the conductor heading called installAZ as a list of two known-good availability zones in your account. For example:

conductor:
  installAZ:
    - us-east-1c
    - us-east-1d

Next time you run fugue install, the command will install the Fugue Conductor VPC with subnets in the first two AZs listed.

There are two caveats you should keep in mind if you have to use this feature. Firstly, bear in mind that you can specify one or two AZs. If you specify one, the CLI will log a warning during installation, but Fugue will install and run. If you specify two, installation should proceed as normal. If you specify more than two, only the first two will be used, and all subsequent entries in the list will be ignored.

Secondly, the AZs you list will be assumed valid. If you provide an invalid or unavailable AZ for your account, installation will fail with a CloudFormation stack error, like:

[ ERROR ] AWS CloudFormation stack creation failed

Note that you can get a list of AZs available to you using the AWS CLI command describe-availability-zones, but this is the same command that Fugue uses, and it sometimes returns unreliable data. As a rule of thumb, you should look for a pair of AZs that are listed as available to you, but that you don’t heavily utilize.