awscli
Ansible Роль: christiangda.awscli
Эта роль устанавливает интерфейс командной строки AWS (awscli)
Лучший способ установить эту роль - использовать команду ansible-galaxy install christiangda.awscli
, репозиторий Ansible Galaxy - christiangda.awscli
Код репозитория доступен здесь
Примечания:
- Эта роль не позволяет настраивать профиль AWS CLI (конфигурация и учетные данные), вместо этого она работает вместе с ролью christiangda.awscli_configure, которая позволяет вам это сделать.
Требования
Эта роль работает на дистрибутивах RedHat, CentOS, Debian и Ubuntu
- RedHat
- 7
- 8
- CentOS
- 7
- 8
- Ubuntu
- 16.*
- 18.*
- 20.*
- 21.*
- Debian
- stretch (9)
- buster (10)
- bullseye (11)
Чтобы увидеть матрицу совместимости Python и Ansible, посмотрите проект Travis-CI build matrix
Переменные роли
Нет
Зависимости
- RedHat/CentOS
- 6/7 EPEL Репозиторий Вам нужно включить репозиторий EPEL, вы можете использовать мою роль: christiangda.epel_repo для этой задачи.
Примечание: RedHat/CentOS 8 не требует репозитория EPEL для использования этой роли.
Пример плейбука
RedHat/CentOS, Ubuntu и Debian
Когда у вас целевая система RedHat/CentOS 8 или Debian/Ubuntu
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli
Когда у вас целевая система RedHat/CentOS 6/7
- hosts: redhat-7
gather_facts: True
roles:
- role: christiangda.epel_repo
- role: christiangda.awscli
Когда у вас несколько целевых ОС, установите репозиторий EPEL только для RedHat/CentOS 6/7
- hosts: servers
gather_facts: True
roles:
- role: christiangda.epel_repo
when: >
ansible_os_family == 'RedHat' and (
ansible_distribution == 'CentOS' or
ansible_distribution == 'RedHat'
)
and (
ansible_distribution_major_version == '6' or
ansible_distribution_major_version == '7'
)
changed_when: false
- role: christiangda.awscli
Когда у вас целевая система RedHat/CentOS 8 или Debian/Ubuntu и вы хотите использовать роль christiangda.awscli
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli
- role: christiangda.awscli_configure
vars:
awscliconf_files:
credentials:
- default:
aws_access_key_id: 'AKIAIOSFODNN7EXAMPLE'
aws_secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
config:
- default:
region: us-west-2
output: json
- profile development:
role_arn: 'arn:aws:iam::123456789012:role/role-for-development'
mfa_serial: 'arn:aws:iam::11111111111:mfa/christian.gonzalez'
region: eu-west-1
source_profile: default
Разработка / Участие
Эта роль тестируется с помощью Molecule и была разработана с использованием виртуальных окружений Python
Кроме того, мы используем две основные ветки git
- master
- develop
Если вы хотите внести свой вклад в этот проект, вам нужно сделать следующее:
- Сделайте форк проекта
- Подготовьте свою среду
- Исправьте проблему в ветке
develop
- Выполните
molecule test
- Создайте Pull Request в официальную ветку проекта
develop
Ссылки
Подготовка вашей среды
- Python 3
mkdir ansible-roles
cd ansible-roles/
python3 -m venv venv
source venv/bin/activate
pip install pip --upgrade
pip install ansible
pip install molecule
pip install 'molecule[docker]'
pip install 'molecule[lint]'
pip install molecule-vagrant
pip install python-vagrant
pip install selinux
pip install docker
pip install pytest
pip install pytest-mock
pip install pylint
pip install rope
pip install autopep8
pip install yamllint
pip install flake8
pip install ansible-lint
Клонирование репозитория роли (из вашего форка) и создание символической ссылки
git clone https://github.com/christiangda/ansible-role-awscli.git
ln -s ansible-role-awscli christiangda.awscli
cd christiangda.awscli
Выполнение теста molecule
Доступные сценарии:
- default -->
--driver-name docker
и только последняя версия ОС - docker -->
--driver-name docker
- podman -->
--driver-name podman
- vagrant -->
--driver-name vagrant
сценарий default
Шаг за шагом
molecule create [--scenario-name default]
molecule converge [--scenario-name default]
molecule verify [--scenario-name default]
molecule destroy [--scenario-name default]
или
Все в одном
molecule test [--scenario-name default]
сценарий podman
Шаг за шагом
molecule create --scenario-name podman
molecule converge --scenario-name podman
molecule verify --scenario-name podman
molecule destroy --scenario-name podman
или
Все в одном
molecule test --scenario-name podman
сценарий vagrant
Шаг за шагом
molecule create --scenario-name vagrant
molecule converge --scenario-name vagrant
molecule verify --scenario-name vagrant
molecule destroy --scenario-name vagrant
или
Все в одном
molecule test --scenario-name vagrant
Кроме того, если вы хотите протестировать это, используя ВМ, у меня есть отличный проект ansible-playground, который использует Vagrant и VirtualBox. Попробуйте!
Лицензия
Этот модуль выпущен под лицензией GNU General Public License Версия 3:
Информация о авторе
Ansible Role for AWS Command Line Interface (awscli)
ansible-galaxy install christiangda/ansible-role-awscli