community.aws.aws_ssm – выполнение через AWS Systems Manager
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в плейбуке укажите: community.aws.aws_ssm.
Описание
- Этот плагин подключения позволяет Ansible выполнять задачи на экземпляре EC2 через CLI aws ssm.
Требования
Ниже перечислены требования к локальному контроллеру, на котором выполняется это подключение.
- Удаленный экземпляр EC2 должен запускать агент AWS Systems Manager (SSM Agent).
- На управляющей машине должен быть установлен плагин aws session manager.
- На удаленном экземпляре EC2 Linux должен быть установлен curl.
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| access_key_id строка добавлен в 1.3.0 community.aws | var: ansible_aws_ssm_access_key_id | Ключ доступа STS для подключения через session-manager. | |
| bucket_name строка | var: ansible_aws_ssm_bucket_name | Имя S3-бакета, используемого для передачи файлов. | |
| instance_id строка | var: ansible_aws_ssm_instance_id | ID экземпляра EC2. | |
| plugin строка | По умолчанию: "/usr/local/bin/session-manager-plugin" | var: ansible_aws_ssm_plugin | Определяет местоположение двоичного файла session-manager-plugin. |
| region строка | По умолчанию: "us-east-1" | var: ansible_aws_ssm_region | Регион, в котором находится экземпляр EC2. |
| retries целое число | По умолчанию: 3 | var: ansible_aws_ssm_retries | Количество попыток подключения. |
| secret_access_key строка добавлен в 1.3.0 of community.aws | var: ansible_aws_ssm_secret_access_key | Секретный ключ STS для подключения через session-manager. | |
| session_token строка добавлен в 1.3.0 of community.aws | var: ansible_aws_ssm_session_token | Токен сеанса STS для подключения через session-manager. | |
| ssm_timeout целое число | По умолчанию: 60 | var: ansible_aws_ssm_timeout | Таймаут подключения в секундах. |
Примеры
# Stop Spooler Process on Windows Instances
- name: Stop Spooler Service on Windows Instances
vars:
ansible_connection: aws_ssm
ansible_shell_type: powershell
ansible_aws_ssm_bucket_name: nameofthebucket
ansible_aws_ssm_region: us-east-1
tasks:
- name: Stop spooler service
win_service:
name: spooler
state: stopped
# Install a Nginx Package on Linux Instance
- name: Install a Nginx Package
vars:
ansible_connection: aws_ssm
ansible_aws_ssm_bucket_name: nameofthebucket
ansible_aws_ssm_region: us-west-2
tasks:
- name: Install a Nginx Package
yum:
name: nginx
state: present
# Create a directory in Windows Instances
- name: Create a directory in Windows Instance
vars:
ansible_connection: aws_ssm
ansible_shell_type: powershell
ansible_aws_ssm_bucket_name: nameofthebucket
ansible_aws_ssm_region: us-east-1
tasks:
- name: Create a Directory
win_file:
path: C:\Windows\temp
state: directory
# Making use of Dynamic Inventory Plugin
# =======================================
# aws_ec2.yml (Dynamic Inventory - Linux)
# This will return the Instance IDs matching the filter
#plugin: aws_ec2
#regions:
# - us-east-1
#hostnames:
# - instance-id
#filters:
# tag:SSMTag: ssmlinux
# -----------------------
- name: install aws-cli
hosts: all
gather_facts: false
vars:
ansible_connection: aws_ssm
ansible_aws_ssm_bucket_name: nameofthebucket
ansible_aws_ssm_region: us-east-1
tasks:
- name: aws-cli
raw: yum install -y awscli
tags: aws-cli
# Execution: ansible-playbook linux.yaml -i aws_ec2.yml
# The playbook tasks will get executed on the instance ids returned from the dynamic inventory plugin using ssm connection.
# =====================================================
# aws_ec2.yml (Dynamic Inventory - Windows)
#plugin: aws_ec2
#regions:
# - us-east-1
#hostnames:
# - instance-id
#filters:
# tag:SSMTag: ssmwindows
# -----------------------
- name: Create a dir.
hosts: all
gather_facts: false
vars:
ansible_connection: aws_ssm
ansible_shell_type: powershell
ansible_aws_ssm_bucket_name: nameofthebucket
ansible_aws_ssm_region: us-east-1
tasks:
- name: Create the directory
win_file:
path: C:\Temp\SSM_Testing5
state: directory
# Execution: ansible-playbook win_file.yaml -i aws_ec2.yml
# The playbook tasks will get executed on the instance ids returned from the dynamic inventory plugin using ssm connection.
Авторы
- Pat Sharkey (@psharkey) <psharkey@cleo.com>
- HanumanthaRao MVL (@hanumantharaomvl) <hanumanth@flux7.com>
- Gaurav Ashtikar (@gau1991 )<gaurav.ashtikar@flux7.com>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/aws_ssm_connection.html