christiangda.awscli

Ansible角色: christiangda.awscli

主分支工作流 开发分支工作流 Ansible角色

此角色用于安装AWS命令行界面(awscli)

安装此角色的最佳方式是使用命令ansible-galaxy install christiangda.awscli,Ansible Galaxy库为christiangda.awscli

代码库地址为https://github.com/christiangda/ansible-role-awscli

注意:

需求

此角色适用于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 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版发布:

作者信息

安装
ansible-galaxy install christiangda.awscli
许可证
gpl-3.0
下载
53.8k