ibm.infosvr
ansible-role-infosvr
Ansible 角色用于自动化部署 IBM InfoSphere 信息服务器环境,包括版本 11.5 和 11.7,涵盖以下内容:
- 仓库(数据库)层
- 域(服务)层
- 引擎层
- 统一治理(“企业搜索”)层(仅限 v11.7)
- 补丁 / 修复包
以及企业版的以下模块,可以通过以下描述的变量禁用(例如,如果没有使用权限或不想安装/配置它们):
- 信息治理目录
- 信息分析器
- DataStage 操作控制台
- DataClick
- 事件管理(与数据质量异常控制台集成)
- 数据质量异常控制台
- QualityStage
- 信息服务总监
- FastTrack
- 信息治理仪表板(需要先前存在的 Cognos 环境)
- DataStage 内的优化掩码
- 包括仅在 v11.7 中提供的这些额外功能:
- 新信息治理目录(UI)
- 治理监控仪表板
- 企业搜索(包括知识图谱)
- DataStage 流设计器
- 机器学习术语分类(v11.7+)
目前的部署仅支持 DB2 作为后端,既可以安装和配置捆绑的 DB2,也可以配置已存在的 DB2。将安装一个完整的 WebSphere 应用程序服务器网络部署配置或 WebSphere Liberty 配置(有关更多细节,请参见下方变量);目前该角色无法配置现有的 WebSphere 安装。
刚接触 Ansible?这个 简单介绍 可能会对你有帮助。
要求
- Ansible v2.7
- 具备对所有服务器的 'root' 提升权限的网络访问
- 对 Windows 客户端机器的管理员访问
- 已配置 WinRM 访问的 Windows 客户端机器(见 http://docs.ansible.com/ansible/latest/intro_windows.html)
角色变量
请参见 defaults/main.yml
以获取内联文档,以及以下示例以获取所需的主要变量。默认文件中包含您在标准 v11.7 安装中会找到的默认设置,因此您只需覆盖不想使用默认值(即用户密码)的变量即可。
可能需要覆盖的最小变量如下:
ibm_infosvr_media_dir
:Ansible 主机上已下载安装二进制文件的位置(例如,从 Passport Advantage)ibm_infosvr_media_bin
字典:用于安装的二进制文件名称(默认情况下,最新的 v11.7 文件已在此;如果要安装 v11.5,则需要用 v11.5 文件名替换)ibm_infosvr_ug_storage
:统一治理层上将被 Kubernetes 使用的额外原始存储设备(应为原始状态:未挂载,不在 LVM 组中等)ibm_infosvr_features
字典:定义您希望(为 True)与不希望(为 False)的功能
最后,应该覆盖各种凭据变量以创建一个足够安全的环境。搜索 _upwd_
将显示 defaults/main.yml
中您需要覆盖的所有密码变量。(您可以随意用其他变量的引用替代这些变量,这些变量本身通过 Ansible vault 进一步安全保护。)
依赖项
信息分析器的配置间接利用了 IBM.infosvr-metadata-asset-manager
角色,使用 import_role
指令。此角色未列为显式依赖项,以避免循环依赖,但如果您计划配置信息分析器,则应该安装此角色。
示例剧本
以下示例剧本将使用 defaults/main.yml
中的默认参数(以及您放置在例如 group_vars/all.yml
中的任何覆盖项)完成 IBM InfoSphere 信息服务器的完整安装和配置。请注意,由于整个安装是由此单个角色在多个层上完成的,您应该使用 any_errors_fatal
以避免在不同层的某个早期步骤失败时导致分段安装/配置。
---
- name: install and configure IBM InfoSphere Information Server
hosts: all
any_errors_fatal: true
roles:
- IBM.infosvr
pre_tasks:
- name: update all OS-level packages
yum:
state: latest
name: '*'
exclude: docker*,kubelet*,kubectl*,kubeadm*
become: yes
when: ('ibm_information_server_clients' not in group_names)
预任务确保在开始安装之前,所有操作系统级的软件包都是最新的。
预期库存
预期在库存中有以下组,因为它们用于区分各个组件的安装位置。当然,如果您想在同一台服务器上安装多个组件,可以简单地在每个组下提供相同的主机名。例如,在以下示例中,仓库和域层都放置在 'serverA' 上,而引擎层将单独安装在 'serverB' 上,统一治理层也被分配到其自己的系统 'serverC'。
[ibm_information_server_repo]
# 应安装仓库层(数据库)的 Linux 主机(DB2)
serverA.somewhere.com
[ibm_information_server_domain]
# 应安装域(服务)层的 Linux 主机(WebSphere)
serverA.somewhere.com
[ibm_information_server_engine]
# 应安装引擎层的 Linux 主机
serverB.somewhere.com
[ibm_information_server_clients]
# 应安装客户端应用程序的 Windows 主机,并为仅限 Windows 的代理/桥接配置元数据交换服务器
client.somewhere.com
[ibm_information_server_ug]
# 应安装 v11.7+ 统一治理层的 Linux 主机(kubernetes)
serverC.somewhere.com
[ibm_information_server_external_db]
# 包含可用于部署 XMETA 等的现有数据库的 Linux 主机 -- 如果未提供主机,或者此组完全缺失,则会在 ibm_information_server_repo 服务器上安装捆绑的 DB2
serverD.somewhere.com
[ibm_cognos_report_server]
# 存在现有 Cognos BI 安装的 Linux 主机(用于信息治理仪表板)
cognos.somewhere.com
[ibm_bpm]
# 存在现有 BPM 安装的 Linux 主机(当前未使用)
bpm.somewhere.com
与任何 Ansible 库一样,应该提供足够的细节以确保能够连接到服务器(见 http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters)。
标签
安装补丁
该角色还旨在保持已安装环境的补丁和系统软件包的最新状态。要应用补丁,只需在 vars/patches/[server|client]/<version>/<date>.yml
下输入相关细节。例如,v11.7.1.0 服务器端的修复应放入 vars/patches/server/11.7.1.0/<date>.yml
,而 v11.7.0.2 客户端的修复则放入 vars/patches/client/11.7.0.2/<date>.yml
,其中 <date>
是补丁发布的日期。通常,这些内容会基于主要补丁在 Fix Central 上的可用性进行更新;但如果您希望应用尚未在列表中的临时修复或其他内容,只需按照以下指示进行操作。
- 每个补丁应为名为
ibm_infosvr_patch_definition
的字典。 - 该字典应包含以下键:
name
:补丁 / 修复包的名称,按 IBM Fix Central 列出srcFile
:从 IBM Fix Central 下载的补丁 / 修复包文件名pkgFile
:包含在srcFile
中的.ispkg
文件名versionId
:补丁 / 修复包安装后添加到版本.xml 的installerId
标签tiers
:此补丁应应用于的层的列表(可能值为domain
和engine
)-- 对于客户端补丁,隐含为客户端,因此不需要tiers
例如:
ibm_infosvr_patch_definition:
name: is11700_ServicePack2_ug_services_engine_linux64
srcFile: servicepack_11.7_SP2_linux64_11700.tar.gz
pkgFile: servicepack_11.7_SP2_linux64_11700.ispkg
versionId: servicepack_SP2_IS117_11700
tiers:
- domain
- engine
JDK 更新也可以在 vars/patches/jdk/[server|client]/<major>/latest.yml
下进行,其中 <major>
是主要版本号(11.5
或 11.7
)。在这两种情况下,应使用名为 ibm_infosvr_jdk_definition
的单个字典定义 JDK 信息。
对于 11.5
,需要以下键:
name
:JDK 的名称,按 IBM Fix Central 列出infosvr_filename
:从 IBM Fix Central 下载的 JDK 文件的名称infosvr_extract_path
:通过解压 JDK 文件创建的路径versionInfo
:唯一标识此 JDK 版本的版本字符串(来自java -version
)was_filename
:包含 v6 JDK 的 WebSphere 应用程序服务器(WAS)修复包的名称was_offering
:WAS JDK(v6)修复包中的产品名称jdk7_filename
:包含 v7 JDK 的 WAS 修复包名称jdk7_offering
:WAS JDK(v7)修复包中的产品名称was_versionInfo
:唯一标识此 JDK 版本(v6,来自java -version
)的版本字符串jdk7_versionInfo
:唯一标识此 JDK 版本(v7,来自java -version
)的版本字符串
对于 11.7
,需要以下键:
name
:JDK 的名称,按 IBM Fix Central 列出infosvr_filename
:从 IBM Fix Central 下载的 JDK 文件的名称infosvr_extract_path
:通过解压 JDK 文件创建的路径was_filename
:包含 JDK 的 WebSphere 应用程序服务器(WAS)修复包的名称was_offering
:WAS JDK 修复包中的产品名称versionInfo
:唯一标识此(非 WAS)JDK 版本的版本字符串(来自java -version
)was_versionInfo
:唯一标识此(WAS)JDK 版本的版本字符串(来自java -version
)
这些 JDK 更新不是列表,而是一个简单的字典,因为每个更新将覆盖以前的更新,您只需列出希望应用的最新版本的 JDK。
要运行更新,请使用 update
标签,如下所示:
ansible-playbook [-i hosts] [site.yml] --tags=update
这将应用列在 vars/patches...
文件中的任何尚未应用的补丁,基于您特定版本的补丁。补丁将按发布日期(从旧到新)排序应用。然而,这将不会更新操作系统的任何系统级软件包:如果需要,确保您的更广泛的剧本处理此类更新。
环境操作
提供了一些标签以简化环境操作,特别是当它跨多个主机时:
status
: 将检查已配置的各种组件是否正在运行(通过检查服务是否在其指定端口上侦听)。stop
: 将优雅地在各主机之间以适当的顺序关闭每个组件;而不关闭底层的主机本身。start
: 将在各主机之间以适当的顺序启动每个组件。restart
: 提供了一种简单的方式,可以运行stop
后面紧跟start
。
可重用任务
该角色还包括以下可重用任务,旨在用于其他需要利用信息服务器安装特性而不一定要运行所有安装步骤的角色。
setup_vars.yml
部署信息服务器环境时使用的配置变量可以稍后通过使用 setup_vars.yml
任务集来检索,例如通过在剧本中包含以下内容:
---
- name: setup Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
get_certificate.yml
信息服务器环境的域层的根 SSL 证书可以稍后通过使用 get_certificate.yml
任务集来检索,例如通过在剧本中包含以下内容:
---
- name: setup Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
- import_role: name=IBM.infosvr tasks_from=get_certificate.yml
请注意,这套任务还依赖于 setup_vars.yml
已经运行过,因此值得在同一个剧本中包含它们(如上例所示)。域层的 SSL 证书将存储在 cache/__ibm_infosvr_cert_root.crt
,相对于剧本在控制机上执行的路径。
许可证
Apache 2.0
作者信息
Christopher Grote
Automates the deployment and configuration of IBM Information Server
ansible-galaxy install ibm.infosvr