Shaker Profile Configuration

Salt minions are usually launched with Shaker specifying a user-defined profile, which overrides default values. A user-defined profile effectively extends the default, so you may modify default with global values, declaring only per-minion values in the minion profile.

Unless otherwise specified, profiles are located in the ~/.shaker/profile directory.

Salt-Specific Configuration Options

salt_master

Default: None

Specify the location of a running Salt master.

salt_master: salt.example.com

salt_id

Default: hostname (fully-qualified)

salt_id identifies this salt minion to the master. If not specified, defaults to the fully qualified hostname.

salt_id: moonunit

salt_grains

Default: None

Specify the salt grains for the minion.

salt_grains:
    roles:
        - webserver
        - memcache
    deployment: datacenter4

pre_seed

Default: False

pre_seed seeds the master with a generated salt key, which is copied to the minion upon instance creation.

pre_seed: true

Host Configuration Options

ip_address

Default: None

ip_address assigns an elastic ip address to minion after the instance is launched. If the ip address is already in use, the assignment will fail.

ip_address: 111.22.33.44

hostname

Default: (determined by EC2 startup)

The hostname is passed to EC2 initialization, prior to boot-up. The usual case is to specify hostname and domain because these values determine the Salt minion ID in the absence of an explicit salt_id.

hostname: igor

domain

Default: (assigned by Amazon: amazonaws.com)

The domain name assigned to the instance.

domain: example.com

timezone

Default: (UTC, if not specified)

Timezone for your instance.

timezone: America/Chicago

ssh_import

Default: None

Import public keys from launchpad.net. Only applicable for Ubuntu cloud-init. User names are comma-separated, no spaces.

Launchpad provides a free service for registering public keys that are assigned to Ubuntu instances, if specified in ssh_import.

ssh_import: jbauer,akoumjian

sudouser

Default: None

Install the user with sudo privileges. If sudouser is listed in ssh_import, the public key will be installed from launchpad.net.

sudouser: jbauer

ssh_port

Default: 22

Port enabled to allow ssh connections. You may specify a non-standard ssh port, but verify it’s open in your ec2_security_group.

ssh_port: 6222

ubuntu_release

Default: precise

Specify the distribution to launch: precise, oneiric, natty, maverick, or lucid.

Note: Only lucid and precise (or later) are likely to work, until the Salt packaging is backported to other non-LTS distributions.

ubuntu_release: lucid

check_name_before_create

If a box with the same Name tag exists, do not attempt to create another one.

check_name_before_create: False

check_name_after_create

If a box with the same Name tag exists, leave your with none.

check_name_after_create: True

additional_tags

You can add any custom AWS tags you want.

additional_tags:
  project: homepage
  environment: production

EC2-Specific Configuration Options

ec2_access_key_id

Default: None

AWS access key that is used for creating a connection to the service. If not given, boto’s defaults <http://docs.pythonboto.org/en/latest/boto_config_tut.html> like ~/.boto or environment variables are used.

ec2_access_key_id: <AWS_ACCESS_KEY_ID>

ec2_secret_access_key

Default: None

Use this if you are setting also ec2_access_key_id in you profile.

ec2_secret_access_key: <AWS_SECRET_ACCESS_KEY>

ec2_region

Default: us-east-1

Specify the region to use for the instance. The default may be changed in ~/.shaker/profile/default.

ec2_zone: eu-west-1

ec2_zone

Default: None

Specify the zone to start the instance in or leave empty for EC2 to choose a zone for you. The default may be changed in ~/.shaker/profile/default.

ec2_zone: us-west-1a

ec2_instance_type

Default: m1.small

Amazon EC2 Instance Type:

  • t1.micro
  • m1.small (default)
  • m2.xlarge, m2.2xlarge, m2.4xlarge
  • c1.medium, c1.xlarge, cc1.4xlarge, cc2.8xlarge
ec2_instance_type: t1.micro

ec2_ami_id

Default: None

The AMI id of the image to launch. Note that AMI’s are region-specific, so you must specify the the appropriate AMI for the specific ec2_zone. Specifying ec2_ami_id overrides ubuntu_release below.

ec2_ami_id: ami-6ba27502

ec2_size

Default: (determined by EC2 startup)

Size of the root partition in gigabytes. If zero or not specified, defaults to the instance type.

ec2_size: 20

ec2_key_name

Default: default

Name of the key pair used to create the instance. If not specified and only one key-pair is available, it will be used. Otherwise you must disambiguate by specifying the key-pair.

ec2_key_name: rubickey

ec2_security_group

Default: default

The security group to control port access to the instance (ssh, http, etc.) If not specified, use default, which generally permits port 22 for ssh access.

ec2_security_group: webserver

ec2_security_groups

Default: []

Overrides ec2_security_group if multiple security groups are needed.

ec2_security_groups:
  - default
  - webserver

ec2_placement_group

Default: None

The placement group of the instance. Typically used for high performance computing.

ec2_placement_group: hpc_cluster

ec2_monitoring_enabled

Default: false

Enable EC2 instance monitoring with CloudWatch

ec2_monitoring_enabled: true

ec2_root_device

Default: /dev/sda1

Specify the root device name for the instance.

ec2_root_device: /dev/sdh