# Getting Started With Joyent

Joyent is a public cloud host that supports SmartOS, Linux, FreeBSD, and Windows.

## Dependencies

This driver requires the Python `requests` library to be installed.

## Configuration

The Joyent cloud requires three configuration parameters. The user name and password that are used to log into the Joyent system, and the location of the private ssh key associated with the Joyent account. The ssh key is needed to send the provisioning commands up to the freshly created virtual machine.

    # Note: This example is for /etc/salt/cloud.providers or any file in the
    # /etc/salt/cloud.providers.d/ directory.

    my-joyent-config:
      driver: joyent
      user: fred
      password: saltybacon
      private_key: /root/mykey.pem
      keyname: mykey

Note

Changed in version 2015.8.0.

The `provider` parameter in cloud provider definitions was renamed to `driver`. This change was made to avoid confusion with the `provider` parameter that is used in cloud profile definitions. Cloud provider definitions now use `driver` to refer to the Salt cloud module that provides the underlying functionality to connect to a cloud host, while cloud profiles continue to use `provider` to refer to provider configurations that you define.

## Profiles

### Cloud Profiles

Set up an initial profile at `/etc/salt/cloud.profiles` or in the `/etc/salt/cloud.profiles.d/` directory:

    joyent_512:
      provider: my-joyent-config
      size: g4-highcpu-512M
      image: ubuntu-16.04

Sizes can be obtained using the `--list-sizes` option for the `salt-cloud` command:

    # salt-cloud --list-sizes my-joyent-config
    my-joyent-config:
        ----------
        joyent:
            ----------
            g4-highcpu-512M:
                ----------
                default:
                    False
                description:
                    Compute Optimized 512M RAM - 1 vCPU - 10 GB Disk
                disk:
                    10240
                group:
                    Compute Optimized
                id:
                    14aea8fc-d0f8-11e5-bfe4-a7458dbc6c99
                lwps:
                    4000
                memory:
                    512
                name:
                    g4-highcpu-512M
                swap:
                    2048
                vcpus:
                    0
                version:
                    1.0.3
    ...SNIP...

Images can be obtained using the `--list-images` option for the `salt-cloud` command:

    # salt-cloud --list-images my-joyent-config
    my-joyent-config:
        ----------
        joyent:
            ----------
            base:
                ----------
                description:
                    A 32-bit SmartOS image with just essential packages
                    installed. Ideal for users who are comfortabl e with
                    setting up their own environment and tools.
                files:
                    |_
                      ----------
                      compression:
                          gzip
                      sha1:
                          b00a77408ddd9aeac85085b68b1cd22a07353956
                      size:
                          106918297
                homepage:
                    http://wiki.joyent.com/jpc2/Base+Instance
                id:
                    00aec452-6e81-11e4-8474-ebfec9a1a911
                name:
                    base
                os:
                    smartos
                owner:
                    9dce1460-0c4c-4417-ab8b-25ca478c5a78
                public:
                    True
                published_at:
                    2014-11-17T17:41:46Z
                requirements:
                    ----------
                state:
                    active
                type:
                    smartmachine
                version:
                    14.3.0

    ...SNIP...

## SmartDataCenter

This driver can also be used with the Joyent SmartDataCenter project. More details can be found at:

Using SDC requires that an api_host_suffix is set. The default value for this is .api.joyentcloud.com. All characters, including the leading ., should be included:

    api_host_suffix: .api.myhostname.com

## Miscellaneous Configuration

The following configuration items can be set in either `provider` or `profile` configuration files.

### use_ssl

When set to `True` (the default), attach `https://` to any URL that does not already have `http://` or `https://` included at the beginning. The best practice is to leave the protocol out of the URL, and use this setting to manage it.

### verify_ssl

When set to `True` (the default), the underlying web library will verify the SSL certificate. This should only be set to `False` for debugging.`