andrelohmann.accounts

账户

最后测试

内容

在您的机器上部署用户和公钥。

要求

此角色需要 Ubuntu 系统。

角色变量

创建一个包含所有需要在系统上创建的用户的列表。您可以设置 http://docs.ansible.com/ansible/user_module.html 上可用的每个用户参数。您还可以为 http://docs.ansible.com/ansible/authorized_key_module.html 上可用的密钥设置每个参数(除了 "user")。可选数组 "accounts_sshd_configs" 允许设置 sshd_config 参数。

accounts_users:
  - name: __用户名__
    uid: __UID__
    state: present
    groups:
      - sudo
    public_keys:
      - key: ssh-rsa AAA...
        state: present

accounts_sshd_configs:
  - key: PermitRootLogin
    value: 'no'
  - key: AuthenticationMethods
    value: 'publickey password'
  - key: PasswordAuthentication
    value: 'yes'

如果您需要在主机基础上额外的用户,可以设置一个额外的列表 accounts_host_users

accounts_host_users:
  - name: __用户名__
    uid: __UID__
    state: present
    groups:
      - sudo
    public_keys:
      - key: ssh-rsa AAA...
        state: present

示例剧本

- hosts: accounts
  roles:
    - { role: andrelohmann.accounts }

角色开发

特殊目的

此存储库支持角色开发的以下功能:

  • yamllint
  • ansible-lint
  • molecule 测试
  • GitHub 操作
  • 自动版本更新
  • 更新 ansible-galaxy
  • 显示构建状态
  • 在 vagrant 中测试(用于开发目的)
  • 使用 molecule 测试(在 vagrant 内部或外部)
  • 在 docker 容器中测试
  • 在 vscode 内部测试和开发

先决条件

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • 安装 Virtualbox + Vagrant(仅在需要使用 vagrant 测试角色时必要)
  • Docker Desktop
  • Visual Studio Code + 远程扩展包(依赖项在 .vscode/extensions.json 中定义)

开发设置

此 ansible 角色使用 molecule 进行测试开发。其开发基于 Visual Studio Code 和相应的开发容器,解决所有依赖于必要工具(ansible、linter、molecule)。

该角色将在两个 Ubuntu 容器(focal、jammy)上进行测试。

要在开发容器内启动 molecule 测试容器,需要将 docker 套接字绑定挂载到开发容器中。

重要文件和文件夹

.devcontainer
  • 定义开发容器的 Dockerfile
  • 配置开发容器启动(例如,绑定挂载 docker 套接字)
molecule/default/Dockerfile.js
  • 用作 molecule/default/molecule.yml 中定义的所有平台的模板
  • 准备环境以支持 systemd 服务(某些处理 systemd 的 ansible 角色所需)
  • 安装运行 ansible 所需的所有要求
  • 该文件与 molecule/default/molecule.yml 中平台的属性保持一致
  • 有关更多信息,请参阅 molecule 文档

使用方法

Visual Studio Code

  • 切换到角色的根目录并启动 vscode
code .
  • 在开发容器内,您可以使用以下运行命令
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • 切换到角色的根目录
  • 进入 vagrant 文件夹
  • 启动并进入 vagrant 机器
vagrant up
vagrant ssh
  • 切换到角色文件夹
cd /etc/ansible/roles/ansible-role- [tab]
  • 现在您可以运行所有测试
yamllint .
ansible-lint .
molecule create
molecule test

构建与发布过程

该 ansible 角色定义了一系列 GitHub 工作流来运行 molecule 测试和发布管理。

发布管理需要一些设置。

保护主分支

  • 设置 -> 分支 -> 添加分支保护规则
  • 分支模式名称 -> main 或 master(根据您的默认分支)
  • 保护匹配分支 -> 勾选 "合并前需要拉取请求"
  • "需要批准" 可以根据需要单独处理

给予 GITHUB_TOKEN 读写权限

  • 设置 -> 操作 -> 一般 -> 工作流权限 -> 读写权限

提交信息

提交信息应遵循特定格式,以实现补丁、小版本或主版本的语义版本更新。

补丁

0.0.x

fix(single_word): 描述
小版本

0.x.0

feat(single_word): 描述
主版本

x.0.0

perf(single_word): 描述
BREAKING CHANGE: 描述破坏性变化

"BREAKING CHANGE: " 必须在第二行或之后提到。在单行提交信息中,将忽略主版本更新。

添加 GALAXY_API_KEY 密钥

  • https://galaxy.ansible.com/ 处使用 GitHub 账户进行身份验证。
  • 从 Preferences -> API Key 中获取 galaxy api 密钥
  • 打开您的 GitHub 角色存储库
  • 设置 -> 密钥和变量 -> 操作 -> 新建存储库密钥
  • 使用 "GALAXY_API_KEY" 作为密钥,将复制的 galaxy API 密钥作为值

许可证

MIT

作者信息

© Andre Lohmann(及其他)2024

https://github.com/andrelohmann

维护联系人

  • Andre Lohmann
    <lohmann.andre (at) gmail (dot) com>
关于项目

ansible galaxy role to deploy users and public keys

安装
ansible-galaxy install andrelohmann.accounts
许可证
mit
下载
581
拥有者