tehtbl.reboot
角色描述
在需要时重启系统。
示例剧本
此示例来自 molecule/default/converge.yml
,在每次提交、拉取请求和发布时进行测试。
---
- name: 收敛
hosts: all
become: true
gather_facts: false
roles:
- role: tehtbl.reboot
运行此命令的机器可能需要准备,我使用此剧本来确保一切就绪,以便角色可以正常工作。
---
- name: 准备
hosts: all
become: true
gather_facts: false
roles:
- role: tehtbl.bootstrap
角色变量
这些变量在 defaults/main.yml
中设置:
---
# ------------------------------------------------------------------------
# reboot 的默认文件
# ------------------------------------------------------------------------
# 有些操作系统可以判断是否需要重启。此参数可以设置为始终重启。
reboot_always: false
# 在发送重启之前等待多长时间。
reboot_delay: 4
# 在检查机器是否启动之前等待的秒数。
reboot_up_delay: 8
# 您可以指定重启消息,方便审计。
reboot_message: "通过 Ansible 角色 tehtbl.reboot 重启"
要求
- 访问包含软件包的仓库,通常在互联网上。
- 一份最新版本的 Ansible。(测试在当前、上一个和下一个版本的 Ansible 上运行。)
背景
该角色是许多兼容角色的一部分。有关更多信息,请查看 我的其他角色。
兼容性
该角色已在以下 Docker 镜像上进行测试:
容器 | 标签 | 允许失败 |
---|---|---|
debian | stable | 否 |
debian | testing | 否 |
debian | unstable | 是 |
ubuntu | xenial | 是 |
ubuntu | bionic | 否 |
ubuntu | focal | 否 |
ubuntu | devel | 是 |
该角色在以下 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。谢谢!