gwerlas.system
基础系统
Linux系统的基本设置。
在容器中运行角色并不常见,但此用例在Ansible测试中支持Molecule。在这种情况下,只需配置和更新软件包管理器的缓存,其它系统组件将不受管理,因为这是容器引擎的责任。
GitLab项目: yoanncolin/ansible/roles/system
要求
该角色是为非根用户运行而编写的,因此需要安装和配置Sudo。
网络配置需要netaddr
Python包,同时还需要ansible.utils
Ansible模块。
文件系统管理需要jmespath
Python包,同时还需要community.general
和ansible.posix
Ansible模块。
事实
该角色定义的事实:
system_packages
system_shells
system_sudo_version
有关更多详细信息,请参考[事实][]文档。
标签
由于某些值分配在多个任务中,您可以通过标签快速更新其中一些:
ca
- SSL证书颁发机构firewall
hosts
- 更新/etc/hosts
文件networks
packages
proxies
storages
sudoers
time
users
用法:
ansible-playbook -t tag1[,tag2[,...]] my_play.yml
任务
系统组件通过独立任务进行管理,这些任务可以单独调用。
当然,所有任务都在main.yml
中调用。请查看每个任务的文档:
角色变量
功能开关
查看defaults/main/feature-flipping.yml
。
通过将它们设置为true
或false
来启用/禁用某些功能。
共享变量
system_bin_path: /usr/local/bin
system_profile: server
system_retries: 2
某些发行版没有提供命令行来轻松知道是否需要重启,或软件包缓存是否过期。因此我们放置了脚本来完成它。
可以通过system_bin_path
更改这些脚本的位置。
system_profile
可能会影响系统某些部分的行为,例如要安装的软件包(或不安装)。
如果您在安装过程中遇到网络问题,可以增加system_retries
的值。
依赖关系
一个可以访问的Linux系统,并已安装Python。
示例剧本
首次部署或发行版升级,10步滚动更新:
---
- name: 滚动更新
hosts: all
serial: 10%
roles:
- role: gwerlas.system
vars:
system_packages_upgrade: true
只使用一个任务:
---
- name: 软件包管理
hosts: all
tasks:
- name: 只需启动软件包管理器
ansible.builtin.import_role:
name: gwerlas.system
tasks_from: package-managers