add aws installer
This commit is contained in:
21
aws/README.md
Normal file
21
aws/README.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# AWS Credentials
|
||||||
|
|
||||||
|
Distributes aws credentials to all machines that need them.
|
||||||
|
|
||||||
|
## Access Key
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Delete previous access key
|
||||||
|
aws iam delete-access-key --user-name route53 --access-key-id "$(aws iam list-access-keys --user-name route53 --output json | jq -r '.AccessKeyMetadata[0].AccessKeyId')"
|
||||||
|
|
||||||
|
# Create new access key
|
||||||
|
aws iam create-access-key --user-name route53 | jq -r '.AccessKey.AccessKeyId,.AccessKey.SecretAccessKey' | {read AWS_ACCESS_KEY_ID; read AWS_SECRET_ACCESS_KEY;}
|
||||||
|
|
||||||
|
# Send access keys to all servers
|
||||||
|
ansible-playbook \
|
||||||
|
-i ansible/inventory.yaml aws/distribute_aws_creds.yaml \
|
||||||
|
--extra-vars "access_key_id=$AWS_ACCESS_KEY_ID secret_access_key=$AWS_SECRET_ACCESS_KEY"
|
||||||
|
|
||||||
|
# List existing access keys
|
||||||
|
aws iam list-access-keys --user-name route53 --output json
|
||||||
|
```
|
||||||
2
aws/config_template
Normal file
2
aws/config_template
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[profile default]
|
||||||
|
region={{ region }}
|
||||||
3
aws/creds_template
Normal file
3
aws/creds_template
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[default]
|
||||||
|
aws_access_key_id={{ access_key_id }}
|
||||||
|
aws_secret_access_key={{ secret_access_key }}
|
||||||
27
aws/distribute_aws_creds.yaml
Normal file
27
aws/distribute_aws_creds.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
- name: Update nginx stream configuration
|
||||||
|
hosts: colors:kubernetes
|
||||||
|
become: true
|
||||||
|
become_user: root
|
||||||
|
become_method: sudo
|
||||||
|
vars_files:
|
||||||
|
- vars.yaml
|
||||||
|
tasks:
|
||||||
|
- name: Create .aws dir
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /root/.aws
|
||||||
|
state: directory
|
||||||
|
mode: '0700'
|
||||||
|
- name: Copy credentials
|
||||||
|
template:
|
||||||
|
src: creds_template
|
||||||
|
dest: /root/.aws/credentials
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0600'
|
||||||
|
- name: Copy config
|
||||||
|
template:
|
||||||
|
src: config_template
|
||||||
|
dest: /root/.aws/config
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0600'
|
||||||
35
aws/install_aws_cli.yaml
Normal file
35
aws/install_aws_cli.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
- name: Update nginx stream configuration
|
||||||
|
hosts: colors:kubernetes
|
||||||
|
become: true
|
||||||
|
become_user: root
|
||||||
|
become_method: sudo
|
||||||
|
vars_files:
|
||||||
|
- vars.yaml
|
||||||
|
tasks:
|
||||||
|
- name: Ensure curl, unzip installed
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name:
|
||||||
|
- curl
|
||||||
|
- unzip
|
||||||
|
state: present
|
||||||
|
- name: Download aws cli zip
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
|
||||||
|
dest: /tmp/awscliv2.zip
|
||||||
|
mode: '0600'
|
||||||
|
- name: Remove /tmp/aws before unzipping
|
||||||
|
file:
|
||||||
|
path: /tmp/aws
|
||||||
|
state: absent
|
||||||
|
- name: Unzip aws cli
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: /tmp/awscliv2.zip
|
||||||
|
dest: /tmp
|
||||||
|
remote_src: yes
|
||||||
|
- name: Run aws installer
|
||||||
|
ansible.builtin.shell: /tmp/aws/install
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
- name: Run aws updater
|
||||||
|
ansible.builtin.shell: /tmp/aws/install -u
|
||||||
|
when: result is failed
|
||||||
3
aws/vars.yaml
Normal file
3
aws/vars.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
region: us-east-2
|
||||||
|
access_key_id: ""
|
||||||
|
secret_access_key: ""
|
||||||
Reference in New Issue
Block a user