编写一个Ansible角色,用于比较并输出所有服务器上已安装的常见软件包。
创始人
2024-12-05 20:30:45
0
  1. 在Ansible的“roles”目录中创建一个新角色,例如“compare-packages”。

  2. 在“compare-packages”下创建“tasks”目录,并在其中创建一个名为“main.yml”的文件。

  3. 在“main.yml”中,使用Ansible的“set_fact”模块定义一个包含所有服务器的列表变量,然后使用Ansible的“yum”模块在所有服务器上获取已安装的软件包列表。

示例代码如下:

- name: Get list of all servers
  set_fact:
    all_servers:
      - server1
      - server2
      - server3

- name: Get installed package list
  yum:
    list: installed
  register: package_list
  delegate_to: "{{ item }}"
  with_items: "{{ all_servers }}"
  1. 使用Ansible的“set_fact”模块创建一个空列表变量,并遍历所有服务器的软件包列表,查找并添加每个服务器上都存在的软件包名称。

示例代码如下:

- name: Create empty list for common packages
  set_fact:
    common_packages: []

- name: Check for common packages
  set_fact:
    common_packages: "{{ common_packages + [item] }}"
  when: item.stdout_lines is contained in package_list.stdout_lines
  with_items: "{{ package_list.results }}"
  1. 最后,使用Ansible的“debug”模块输出找到的所有常见软件包名称。

示例代码如下:

- name: Output common packages
  debug:
    msg: "Common package found: {{ item }}"
  with_items: "{{ common_packages }}"

这样,角色就可以比较服务器之间的已安装软件包列表,并输出所有服务器上都存在的软件包名称。

相关内容

热门资讯

记者揭秘!智星菠萝辅助(透视辅... 记者揭秘!智星菠萝辅助(透视辅助)拱趴大菠萝辅助神器,扑克教程(有挂细节);模式供您选择,了解更新找...
一分钟揭秘!约局吧能能开挂(透... 一分钟揭秘!约局吧能能开挂(透视辅助)hhpoker辅助靠谱,2024新版教程(有挂教学);约局吧能...
透视辅助!wepoker模拟器... 透视辅助!wepoker模拟器哪个好用(脚本)hhpoker辅助挂是真的,科技教程(有挂技巧);囊括...
透视代打!hhpkoer辅助器... 透视代打!hhpkoer辅助器视频(辅助挂)pokemmo脚本辅助,2024新版教程(有挂教程);风...
透视了解!约局吧德州真的有透视... 透视了解!约局吧德州真的有透视挂(透视脚本)德州局HHpoker透视脚本,必胜教程(有挂分析);亲,...
六分钟了解!wepoker挂底... 六分钟了解!wepoker挂底牌(透视)德普之星开辅助,详细教程(有挂解密);德普之星开辅助是一种具...
9分钟了解!wpk私人辅助(透... 9分钟了解!wpk私人辅助(透视)hhpoker德州透视,插件教程(有挂教学);风靡全球的特色经典游...
推荐一款!wepoker究竟有... 推荐一款!wepoker究竟有透视(脚本)哈糖大菠萝开挂,介绍教程(有挂技术);囊括全国各种wepo...
每日必备!wepoker有人用... 每日必备!wepoker有人用过(脚本)wpk有那种辅助,线上教程(有挂规律);wepoker有人用...
玩家必备教程!wejoker私... 玩家必备教程!wejoker私人辅助软件(脚本)哈糖大菠萝可以开挂,可靠技巧(有挂神器)申哈糖大菠萝...