如何在Ansible中实现精确字符串匹配并管理FusionDirectory架构?
我帮你把这些关于FusionDirectory架构管理和Ansible自动化的内容整理成清晰规范的Markdown格式啦,内容结构一目了然:
FusionDirectory架构管理与Ansible自动化实现
一、查看已安装的架构
要获取当前系统中所有已安装的FusionDirectory架构,执行这条命令即可:
fusiondirectory-insert-schema -l core cosine nis inetorgperson core-fd core-fd-conf ldapns template-fd openssh-lpk
二、安装缺失的架构
如果检查后发现有架构缺失(比如mail-fd-conf.schema),可以用以下命令完成安装:
fusiondirectory-insert-schema -i mail-fd-conf.schema
三、Ansible中收集已启用架构信息
在Ansible里,我们可以通过shell模块把已安装架构的信息存入变量,为后续操作做准备:
- name: Get info which schemas are enabled shell: fusiondirectory-insert-schema -l register: fusiondirectory_schemas
四、实现When条件的精确字符串匹配
要在Ansible中实现精确的字符串匹配判断,我们可以利用fusiondirectory_schemas变量里的输出内容。比如要判断mail-fd-conf.schema是否未安装,进而执行安装操作,写法如下:
- name: Ensure mail-fd-conf schema is installed shell: fusiondirectory-insert-schema -i mail-fd-conf.schema when: "'mail-fd-conf.schema' not in fusiondirectory_schemas.stdout_lines"
这里用stdout_lines将命令输出按行拆分,再用in操作符做精确匹配,确保只有当目标架构确实不存在时才触发安装逻辑,避免重复操作。
五、架构信息的后续分析处理
收集到架构信息后,还可以做更多拓展处理:
- 将已安装架构列表转换成规整的数组,方便后续遍历:
- name: Set fact for installed schemas list
set_fact:
installed_schemas: "{{ fusiondirectory_schemas.stdout_lines | map('trim') | list }}" - 对比预设的必备架构列表,自动找出缺失的架构:
- name: Find missing required schemas
set_fact:
missing_schemas: "{{ required_schemas | difference(installed_schemas) }}"
vars:
required_schemas:
- core
- cosine
- nis
- mail-fd-conf.schema
内容的提问来源于stack exchange,提问作者ipeacocks
相关产品推荐
相关产品推荐

