在现代自动化运维体系中,Ansible 因其简单、无代理架构和强大的模块系统而广受欢迎。而 RockyLinux 作为 CentOS 的继任者,正成为企业级服务器部署的热门选择。本文将带你从零开始,学习如何为 RockyLinux 环境开发自定义 Ansible 模块,即使你是编程小白,也能轻松上手!

Ansible 模块是执行特定任务的独立脚本,比如安装软件包、管理服务、操作文件等。官方提供了大量模块,但有时我们需要定制功能——这就需要自己开发模块。
自定义模块通常使用 Python 编写(也支持 Shell、Go 等),因为 Ansible 控制节点默认依赖 Python。在 RockyLinux 上,Python 3 已成为标准,非常适合开发新模块。
首先确保你的 RockyLinux 系统已安装 Ansible 和 Python 3:
# 安装 EPEL 仓库sudo dnf install -y epel-release# 安装 Ansible 和 Python3sudo dnf install -y ansible python3 python3-pip# 验证版本ansible --versionpython3 --version我们将编写一个名为 hello_rocky 的简单模块,它接收一个名字参数,并返回一条问候语。
Ansible 默认会在以下路径查找自定义模块:
./library/(当前 playbook 目录下)~/.ansible/plugins/modules//usr/share/ansible/plugins/modules/我们使用第一种方式,在项目根目录创建 library 文件夹:
mkdir -p my_playbook/librarycd my_playbook在 library/ 目录下创建文件 hello_rocky.py:
#!/usr/bin/python3# -*- coding: utf-8 -*-from ansible.module_utils.basic import AnsibleModuledef main(): # 定义模块参数 module_args = dict( name=dict(type='str', required=True) ) # 创建模块实例 module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) # 获取传入参数 name = module.params['name'] # 构造返回结果 result = dict( changed=False, message=f"Hello, {name}! Welcome to RockyLinux Ansible automation." ) # 如果不是 check mode,才真正“执行”(本例无实际变更) if not module.check_mode: result['changed'] = False # 本模块不修改系统状态 # 成功退出并返回结果 module.exit_json(**result)if __name__ == '__main__': main()在 my_playbook/ 目录下创建 test_hello.yml:
---- name: Test custom hello_rocky module hosts: localhost connection: local tasks: - name: Say hello to Rocky hello_rocky: name: "Rocky User" register: hello_result - name: Print the message debug: msg: "{{ hello_result.message }}"执行以下命令:
ansible-playbook test_hello.yml你将看到类似输出:
ok: [localhost] => { "msg": "Hello, Rocky User! Welcome to RockyLinux Ansible automation."}当你熟悉基础后,可以尝试:
state、path)module.run_command())pytest + ansible-test)通过本教程,你已经掌握了在 RockyLinux 上进行 Ansible模块开发 的基本流程。自定义模块能极大扩展 Ansible 的能力,实现更灵活的 自动化运维。记住,所有模块都应遵循幂等性原则(多次执行结果一致),并妥善处理错误。
现在,你可以尝试开发自己的模块了!无论是管理日志、部署应用,还是集成第三方 API,Python编写Ansible模块 都是你自动化工具箱中的强大武器。
Happy Automating with RockyLinux and Ansible!
本文由主机测评网于2025-12-19发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025129979.html