tehtbl.update
角色描述
在您的系统上安装更新。
示例剧本
这个示例来自 molecule/default/converge.yml
,并在每次推送、拉取请求和发布时测试。
---
- name: 聚合
hosts: all
become: true
gather_facts: false
roles:
- role: tehtbl.update
您运行此命令的机器可能需要准备, 我使用这个剧本来确保一切就绪,使角色能够正常工作。
---
- name: 准备
hosts: all
become: true
gather_facts: false
roles:
- tehtbl.bootstrap
角色变量
这些变量在 defaults/main.yml
中设置:
---
# ------------------------------------------------------------------------
# update 的默认文件
# ------------------------------------------------------------------------
# 仅适用于 APT(Debian/Ubuntu):除了 `build-dep` 以外,移除所有模块状态下未使用的依赖包
update_autoremove: false
# 仅适用于 APT(Debian/Ubuntu):apt_upgrade 类型可以是:dist、full、yes 或 safe
update_upgrade_command: safe
# 仅适用于 APT(Debian/Ubuntu):如果 apt 缓存的时间小于 cache_valid_time,则更新 apt 缓存。以秒为单位设置。
update_cache_valid_time: 7200
# 在更新系统时,可能需要重启。您可以选择:
# "yes": 当软件包发生更改时总是重启。
# "no": 当软件包发生更改时从不重启。
update_reboot: true
要求
- 需要访问一个包含软件包的仓库,可能在互联网上。
- 最近版本的 Ansible。(测试在当前、上一个和下一个版本的 Ansible 上运行。)
可以安装以下角色以确保满足所有要求,使用 ansible-galaxy install -r requirements.yml
:
- tehtbl.reboot
背景
此角色是许多兼容角色的一部分。有关更多信息,请查看 我的其他角色。
兼容性
此角色已在以下 Docker 镜像上测试:
容器 | 标签 | 允许失败 |
---|---|---|
debian | stable | no |
debian | testing | no |
debian | unstable | yes |
ubuntu | xenial | yes |
ubuntu | bionic | no |
ubuntu | focal | no |
ubuntu | devel | yes |
此角色已在以下 Ansible 版本上测试:
- ansible>=2.8, <2.9
- ansible>=2.9
- git+https://github.com/ansible/ansible.git@devel
使用 Tox 测试
单元测试 在每次提交、拉取请求、发布和定期运行。
如果发现问题,请在 GitHub 中注册。
Tox 测试多个 Ansible 版本。Molecule 测试多个发行版。
要使用默认设置进行测试(任何已安装的 Ansible 版本,命名空间:tehtbl
,镜像:ubuntu
,标签:latest
):
molecule test
# 或选择特定镜像:
IMAGE="ubuntu" molecule test
# 或选择特定镜像和特定标签:
IMAGE="debian" TAG="stable" tox
或者您可以测试多个版本的 Ansible,并选择正确的镜像:
Tox 允许测试多个版本的 Ansible。运行默认测试(命名空间:tehtbl
,镜像:ubuntu
,标签:latest
):
tox
# 运行 Ubuntu(命名空间:`tehtbl`,标签:`latest`)
IMAGE="ubuntu" tox
# 或者更多自定义:
IMAGE="debian" TAG="stable" tox -e py37-ansible-current
使用 Vagrant 测试
通过以下命令安装 vagrant
插件:
vagrant plugin install vagrant-reload
通过 VirtualBox 提供者启动测试:
vagrant up
许可证
MIT 许可证
作者信息
来源
此工作基于许多人的伟大工作,例如 Robert de Bock、Jeff Geerling 和 Thomas Waldmann。谢谢!