ansible.builtin 和 ansible.posix的区别

前言

在RH294的学习时经常看到, ansible.builtin模块(like ansible.builtin.file) 和 ansible.posix模块(like ansible.posix.firewalld)出现,感觉firewalld也是个内置模块,怎么用在两个不同的模块中,所以查了一下区别。

在Ansible中,ansible.builtinansible.posix 是两个不同的模块集合(collections),对比如下。

ansible.builtin

ansible.builtin 是 Ansible 的核心集合(ansible core),包含了一些常用的、与平台无关的模块,这些模块在 Ansible 的大多数版本中都内置存在。

特点:
  • 平台无关:内部模块大多与操作系统无关,可以在各种平台上工作。
  • 核心功能:提供基本的文件操作、软件包管理、用户和组管理等常见功能。
示例模块:
  • ansible.builtin.copy:将文件从控制节点复制到目标节点。
  • ansible.builtin.file:设置文件属性(如权限、所有权)。
  • ansible.builtin.yum:在 RPM 系统上安装或管理软件包。
  • ansible.builtin.user:在目标系统上管理用户。
  • ansible.builtin.command:在远程主机上执行命令。
示例:
yaml 复制代码
- name: Copy a file from control node to managed nodes
  ansible.builtin.copy:
    src: /path/to/source/file
    dest: /path/to/destination/file

- name: Ensure a package is installed using yum
  ansible.builtin.yum:
    name: httpd
    state: present

- name: Create a user
  ansible.builtin.user:
    name: johndoe
    state: present

ansible.posix

ansible.posix 是一个专注于 POSIX(Portable Operating System Interface)兼容系统的集合,包含了一些专门用于类 Unix 系统(如 Linux、BSD)的模块。

特点:
  • 类 Unix 系统专用:模块专门设计用于处理 POSIX 兼容的操作系统。
  • 特定功能加强:提供一些与系统核心功能相关的操作。
示例模块:
  • ansible.posix.acl:设置文件系统 ACL(访问控制列表)。
  • ansible.posix.mount:管理 POSIX 文件系统的挂载。
  • ansible.posix.sysctl:管理内核参数。
  • ansible.posix.seboolean:管理 SELinux 布尔值。
  • ansible.posix.sefcontext:管理 SELinux 文件上下文。
示例:
yaml 复制代码
- name: Set ACL for a file
  ansible.posix.acl:
    path: /path/to/file
    entity: johndoe
    etype: user
    permissions: rwx
    state: present

- name: Ensure /mnt is mounted
  ansible.posix.mount:
    path: /mnt
    src: /dev/sda1
    fstype: ext4
    opts: defaults
    state: mounted

- name: Set sysctl parameter
  ansible.posix.sysctl:
    name: net.ipv4.ip_forward
    value: 1
    state: present
    sysctl_set: yes

主要区别总结:

  1. 模块范围与专注

    • ansible.builtin 是 Ansible 的核心模块集合,提供通用的、跨平台的基础功能模块。
    • ansible.posix 是专注于 POSIX 兼容类 Unix 系统的特定模块集合,主要涉及文件系统和内核等底层系统功能。
  2. 适用平台

    • ansible.builtin 的模块多为平台无关,适用于多种不同的操作系统。
    • ansible.posix 的模块针对类 Unix 系统如 Linux 和 BSD 进行优化,不适用于 Windows 系统。

选择合适的模块集合至关重要,这取决于你的任务需要以及目标系统的类型。


Good Good Study, Day Day UP!!

相关推荐
动力 continue2 小时前
Linux 基础篇 · 压缩打包与用户管理
linux·服务器·基础命令linux
NJCloud3 小时前
Ansible(三)——Zabbix 监控系统部署与敏感信息加密
linux·运维·chrome·信息可视化·ansible·zabbix
ltl4 小时前
Cgroups v2:为什么内存限制设了,宿主机数据库还是被 OOM
linux
NJCloud4 小时前
TiDB 集群部署与 MySQL 兼容性适配实战
linux·运维·数据库·mysql·tidb
2401_868534784 小时前
UNIX常用命令英文全称与中文解释整理
linux·运维
阿祖zu5 小时前
开源项目-让本地 Codex 临时接管远程 Linux 服务,实现快速运维
linux·gpt·agent
Android系统攻城狮7 小时前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光7 小时前
playbook剧本(2)--Ansible变量
linux·运维·网络
lengjingzju7 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
大鹏的NLP博客8 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译