bluethundr
bluethundr

Reputation: 1325

salt cloud error deploying to AWS

When I try to deploy to amazon EC2 using salt cloud, I’m getting this error:

[root@salt salt]# salt-cloud -p ec2_private_win_r3.xlarge server00009
[ERROR   ] AWS Response Status Code and Error: [401 401 Client Error: Unauthorized] {'Errors': {'Error': {'Message': 'AWS was not able to validate the provided access credentials', 'Code': 'AuthFailure'}}, 'RequestID': '33b43015-518e-4865-88e7-b6432e61b0db'}
[ERROR   ] AWS Response Status Code and Error: [401 401 Client Error: Unauthorized] {'Errors': {'Error': {'Message': 'AWS was not able to validate the provided access credentials', 'Code': 'AuthFailure'}}, 'RequestID': '4b88b080-ad32-4388-a133-4322b1c08c04'}
[ERROR   ] There was a profile error: 'NoneType' object has no attribute 'copy'

I’ve verified the AWS keys that I’m using and I’m able to list and even launch new instances using the aws command line with the keys that I’m using in the cloud provider file:

##  Gov Cloud Non Prod environment
company-govcloud-nonprod-us-east-1:
  # Set up the location of the salt master

  minion:
  master: 10.0.2.15

  # Set up grains information, which will be common for all nodes
  # using this driver
  grains:
  node_type: broker

  # Valid options are:
  #     private_ips - The salt-cloud command is run inside the EC2
  #     public_ips - The salt-cloud command is run outside of EC2
  #
  ssh_interface: private_ips

  # Optionally configure the Windows credential validation number of
  # t-tdetries and delay between retries.  This defaults to 10 retries
  # with a one second delay betdwee retries
  win_deploy_auth_retries: 10
  win_deploy_auth_retry_delay: 1

  # Set the EC2 access credentials (see below)

  id: 'AKIAIATLQ4FTDDA6BV7A'
  key: 'asdfasdsfadsadasasdafadsadfafasdasda’

  # Make sure this key is owned by root with permissions 0400.
  #
  private_key: /etc/salt/company-timd
  keyname: company-timd
  #securitygroup: core-sg-default

  # Optionally configure default region
  # Use salt-cloud --list-locations <driver> to obtain valid regions
  #
  location: us-east-1
  availability_zone: us-east-1c

  # Configure which user to use to run the deploy script. This setting is
  # dependent upon the AMI that is used to deploy. It is usually safer to
  # configure this individually in a profile, than globally. Typical users
  # are:
  # Amazon Linux -> ec2-user
  # RHEL         -> ec2-user
  # CentOS       -> ec2-user
  # Ubuntu       -> ubuntu
  #
  ssh_username: root

  # Optionally add an IAM profile
  #iam_profile: 'arn:aws:iam::xxxxxxxxxxxx:role/rl-company-admin'

  driver: ec2

And this is the profile that I’m trying to use:

## Windows Server 2012 Alteryx & Tableau
ec2_private_win_r3.xlarge:
  provider: company-govcloud-nonprod-us-east-1
  image: ami-xxxxxxx
  size: r3.xlarge
  network_interfaces:
    - DeviceIndex: 0
      SubnetId: subnet-xxxxxxx
      SecurityGroupId: sg-xxxxxx
      PrivateIpAddresses:
        - Primary: True
      AssociatePublicIpAddress: False
  block_device_mappings:
   - DeviceName: /dev/sda1
     Ebs.VolumeSize: 120
     Ebs.VolumeType: gp2
   - DeviceName: /dev/sdf
     Ebs.VolumeSize: 250
     Ebs.VolumeType: gp2
  tag: {'Engagement': '999999999999', 'Owner': 'Tim', 'Name': 'non-production', 'Environment': 'COMPANY-Grouper'}

I tried commenting out the IAM profile in the cloud provider definition. I’ve checked and the AWS credentials I’m using has administrator access in IAM.

Here's my version report

[root@salt ~]# salt-cloud --versions-report
Salt Version:
            Salt: 2016.11.5

Dependency Versions:
 Apache Libcloud: 0.20.1
            cffi: 1.6.0
        cherrypy: 3.2.2
        dateutil: 2.6.0
       docker-py: Not Installed
           gitdb: Not Installed
       gitpython: Not Installed
           ioflo: Not Installed
          Jinja2: 2.7.2
         libgit2: Not Installed
         libnacl: Not Installed
        M2Crypto: Not Installed
            Mako: Not Installed
    msgpack-pure: Not Installed
  msgpack-python: 0.4.8
    mysql-python: Not Installed
       pycparser: 2.14
        pycrypto: 2.6.1
    pycryptodome: 3.4.3
          pygit2: Not Installed
          Python: 2.7.5 (default, Nov  6 2016, 00:28:07)
    python-gnupg: Not Installed
          PyYAML: 3.11
           PyZMQ: 15.3.0
            RAET: Not Installed
           smmap: Not Installed
         timelib: Not Installed
         Tornado: 4.2.1
             ZMQ: 4.1.4

System Versions:
            dist: centos 7.2.1511 Core
         machine: x86_64
         release: 3.10.0-327.el7.x86_64
          system: Linux
         version: CentOS Linux 7.2.1511 Core

How can I solve this problem?

Upvotes: 2

Views: 297

Answers (1)

Chris Pollard
Chris Pollard

Reputation: 1780

Are you trying to launch a windows EC2 instance with a ssh_username? That may be breaking it.

Upvotes: 2

Related Questions