首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置变量('required_pkgs')?

如何设置变量('required_pkgs')?
EN

Stack Overflow用户
提问于 2022-02-09 01:25:10
回答 1查看 116关注 0票数 1

我在研究Kubesfe2.16

roles/kubernetes/preinstall/tasks/0070-system-packages.yml,有一个任务“安装软件包需求”

代码语言:javascript
复制
- name: Install packages requirements
  package:
    name: "{{ required_pkgs | default([]) | union(common_required_pkgs|default([])) }}"
    state: present
  register: pkgs_task_result
  until: pkgs_task_result is succeeded
  retries: "{{ pkg_install_retries }}"
  delay: "{{ retry_stagger | random + 3 }}"
  when: not (ansible_os_family in ["Flatcar Container Linux by Kinvolk", "ClearLinux"] or is_fedora_coreos)
  tags:
    - bootstrap-os

根据代码,将安装包{{ required_pkgs | default([]) | union(common_required_pkgs|default([])) }}

我发现了required_pkgs在roles/kubernetes/preinstall/vars/*.yml

redhat.yml中,

代码语言:javascript
复制
required_pkgs:
  - "{{ ( (ansible_distribution_major_version | int) < 8) | ternary('libselinux-python','python3-libselinux') }}"
  - device-mapper-libs
  - nss
  - conntrack

centos.yml中,

代码语言:javascript
复制
required_pkgs:
  - "{{ ( (ansible_distribution_major_version | int) < 8) | ternary('libselinux-python','python3-libselinux') }}"
  - device-mapper-libs
  - nss
  - conntrack

我认为在“此任务”中,Ansible没有检查我的操作系统的进程。那么Ansible如何在许多YML文件中设置required_pkgs呢?

附注:我的操作系统是RedHat。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-09 02:33:53

默认情况下,当Ansible第一次开始执行play时,它将在游戏中涉及的所有远程主机上隐式地运行设置模块。这被称为“事实收集”步骤,由play中的gather_facts选项或ansible.cfg中的gathering选项控制。

在这个步骤中收集到的事实包括操作系统风格、发布、有关接口和磁盘的信息以及其他各种主机元数据。变量都在ansible_*名称空间中(例如,ansible_distribution_major_version)。

库贝斯韦利用这些自动收集的事实来加载适当的vars文件。

有关详细信息,请参阅:

等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71042933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档