christiangda.awscli
Ansible角色: christiangda.awscli
此角色用于安装AWS命令行界面(awscli)。
安装此角色的最佳方式是使用命令ansible-galaxy install christiangda.awscli
,Ansible Galaxy库为christiangda.awscli。
代码库地址为https://github.com/christiangda/ansible-role-awscli。
注意:
- 此角色不允许配置AWS CLI配置文件(config和credentials),而是与角色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构建矩阵。
角色变量
无
依赖关系
- 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
当您有多个操作系统目标时,仅在RedHat/CentOS 6/7中安装EPEL仓库
- 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
如果您想为此项目做贡献,您需要做的是
参考
准备您的环境
- 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
克隆角色库(从您的Fork)并创建符号链接
git clone https://github.com/christiangda/ansible-role-awscli.git
ln -s ansible-role-awscli christiangda.awscli
cd christiangda.awscli
执行分子测试
可用场景:
- default -->
--driver-name docker
且仅适用于OS的最新版本 - docker -->
--driver-name docker
- podman -->
--driver-name podman
- vagrant -->
--driver-name vagrant
默认场景
逐步执行
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通用公共许可证第3版发布: