fugue [global options] install [options]
Global options are detailed here.
- Suppress confirmation dialogs. The yes flag suppresses confirmation dialogs and bypasses interactive prompts by providing input to aid scripting.
- 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.
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
- The profile in
~/.aws/configthat matches the
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 install ] Installing Fugue Conductor Install Details: Conductor AMI ID: ami-e0364df7 AWS Account: <user>/xxxxxxxxxxxx Region: us-east-1 [ 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
Installing the Fugue Conductor into AWS account user/xxxxxxxxxxxx. FugueAutoScalingGroup Working... FugueCliResponsesDb Complete FugueHealthCheckDb Complete FugueIam Complete FugueIamInstaller Complete FugueIamUser Complete FugueInstanceProfile Complete FugueInternetRoute Complete FugueLaunchConfiguration Complete FugueNotificationDriftTopic Complete FugueNotificationKillTopic Complete FugueNotificationResumeTopic Complete FugueNotificationRunTopic Complete FugueNotificationSuspendTopic Complete FugueNotificationSystemTopic Complete FugueNotificationUpdateTopic Complete FugueResourceEventsTopic Complete FugueRouteTable Complete FugueSubnet1 Complete FugueSubnet1RouteTableAssociation Complete FugueSubnet2 Complete FugueSubnet2RouteTableAssociation Complete FugueVpc Complete FugueVpcGateway Complete FugueVpcGatewayAttachment Complete FugueVpcSecurityGroup Complete ----------------------------------------------- Overall Progress [#########################] 96% [ HELP ] Exiting the install command while in progress (CTRL+C) will only stop progress tracking and *not* the install itself.
Note: While the CLI currently indicates that (CTRL+C) will not stop the installation, we do not recommend using this command as it may interrupt the successful creation of credentials. In the event (CTRL+C) is used you can manually create your credentials using fugue support reset-secret. These recommendations will be updated in a future release.
Creating default user credentials ... User Credential Details: [default-xxxxxxxxxxxx-us-east-1] user = root secret = fPXxKUldfPSQwtXhVKs8XOEXAMPLEEXAMPLEEXAMPLE=
Next, the CLI deletes the
fugue.yaml.old file if it exists, renames
fugue.yaml file to
fugue.yaml.old, and creates a new
Found existing fugue.yaml.old file in /Users/user/projects . Deleting existing fugue.yaml.old ... [ OK ] Existing fugue.yaml.old file deleted. Found existing fugue.yaml file in /Users/user/projects . Renaming existing fugue.yaml file to fugue.yaml.old ... [ OK ] Existing fugue.yaml file renamed. [ OK ] Fugue Conductor installed.
The CLI creates a Fugue user IAM role and a Fugue installer IAM role, and then it displays the role names.
Fugue IAM Role Details: Installer: fugue-installer-us-east-1 User: fugue-user-us-east-1
Then, 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.
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
will have a new user secret.
status to confirm the Fugue Conductor is done booting¶
In general, it is not recommended to use CTRL+C to halt the installation
process as this can prevent the creation of your credentials. However,
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.
In addition, you may be forced to manually create your credentials using
fugue support reset-secret.
However, if the Conductor is ready to receive commands,
returns this message:
Fugue Status Report for <user>/<account> - Fri Mar 17 2017 5:31pm State Updated Created Account FID Alias Flags Last Message Next Command ------- --------- --------- --------- ----- ------- ------- -------------- -------------- Nothing to see here. Go create something! :-)
As always, if you run into issues of any kind, reach out to us at firstname.lastname@example.org.
Changing The Region The Conductor Is Running In¶
While we anticipate changing this in the future, at present Fugue only
supports running Conductors in
us-gov-west-1. To specify a region
for the Conductor use
init and provide the the desired 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 email@example.com.
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
fugue.yaml. These AZs will be used when you run the
fugue install command. To do this, add an entry in
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.
Changing the System Vars DDB Table Prior to Installation¶
Changing your Vars table can have severe consequences, including dropping your entire dataset. Do not change your Vars table unless you have been instructed to do so by Fugue Support.
The default DynamoDB table that Vars uses for key/value storage
fugue-vars-headless-store. This is where Fugue stores internal
data related to running the Conductor. To use a different table, you can
specify the new table name in
fugue.yaml prior to installing or
upgrading Fugue. Note: The new table name must begin with
When pointing Vars to a new table, there is no automatic data migration. This means that a newly booted Conductor will act like a fresh install, and any existing infrastructure will no longer be enforced, cleaned up, or even seen by the Conductor.
To change the table name prior to executing
install, first edit
fugue.yaml to add the
block, including the desired name of the DynamoDB table. Your
fugue.yaml may look like this (minus the
conductor: ami: ami-491bbb5f region: us-east-1 experimental: varsSystemTable: fugue-vars-headless-store-v2
Second, turn on the
FUGUE_CLI_PREVIEW flag. This flag is required
for enabling experimental configuration.
Fugue will create the new DynamoDB table for Vars as part of the Conductor installation process.