ibm.infosvr-import-export

ansible-role-infosvr-import-export

用于自动化IBM InfoSphere Information Server内容和结构的导入和导出过程的Ansible角色。

对Ansible不熟悉?这个简单的介绍可能会对你有帮助。

需求

  • Ansible v2.8及以上
  • 对IBM Information Server环境具备dsadm权限的网络访问
  • 库存组名称设置与IBM.infosvr角色相同
  • (为了便于使用,需安装并配置IBM.infosvr角色)
  • 在控制机上安装jmespath(此角色使用json_query模块,依赖于此库)

该角色可选择性地使用特权提升到root以自动化极少的设置任务。如果您的环境不允许这种特权提升,请确保在运行角色之前手动完成这些先决条件,并将defaults/main.yml中的变量ibm_infosvr_impexp_priv_escalate设置为False(这将跳过任何特权提升的尝试)。

如果您将特权提升设置为false,请确保在运行角色之前在目标环境中完成以下操作:

  • 安装python-requests库(例如,通过yum
  • 安装python-lxml库(例如,通过yum
  • 安装curl(例如,通过yum
  • 域层的{IS_HOME}/ASBServer/logs目录必须可由运行该角色的用户写入(以及该目录下的每个.log文件)

(特权提升到dsadm主要用于操作元数据处理以及提取和加载DataStage项目变量;如果您不需要使用这些,则可能不需要任何特权提升。)

角色变量

请查看defaults/main.yml中的内联文档,以及下方示例中的主要所需变量。如需对各种对象类型的预期操作变量和子结构进行说明,请参考以下文档。

默认情况下,如果您使用IBM.infosvrget_certificate.yml任务获取了自签名证书,则该角色将进行SSL验证。这由角色的变量ibm_infosvr_openigc_verify_selfsigned_ssl控制:如果您只想验证正确签名和受信任的SSL证书,可以将此变量设置为False,然后任何自签名的域层证书将不再被信任。

示例剧本

该角色能够导出和导入IBM Information Server中的多种不同资产类型。该角色可以导入到另一个剧本中,只提供感兴趣的变量,以限制要包含在导入或导出中的资产(空变量将意味着该角色将跳过对这些资产类型的处理)。

提供给角色的第一层变量定义了要采取的广泛操作,并始终按此顺序运行,无论它们指定的顺序如何:

  1. gather - 获取关于环境的详细信息(例如,版本号)
  2. export - 从环境中提取资产到文件
  3. merge - 将多个资产文件合并为一个文件
  4. ingest - 从文件加载资产到环境(import是Ansible中的保留变量,因此使用ingest...)
  5. progress - 在工作流中移动资产(如果未启用工作流,则不会执行任何操作)
  6. validate - 使用客观资产计数验证环境处于预期状态

任何缺失的变量将简单地跳过那组操作。

例如:

---

- name: 设置信息服务器变量
  hosts: all
  tasks:
    - import_role: name=IBM.infosvr tasks_from=setup_vars.yml
    - import_role: name=IBM.infosvr tasks_from=get_certificate.yml

- name: 加载和验证资产
  hosts: all
  roles:
    - IBM.infosvr-import-export
  vars:
    isx_mappings:
      - { type: "HostSystem", attr: "name", from: "MY_HOST", to "YOUR_HOST" }
    gather: True
    ingest:
      datastage:
        - from: /some/directory/file1.isx
          into_project: dstage1
          with_options:
            overwrite: True
      common:
        - from: file2.isx
          with_options:
            transformed_by: "{{ isx_mappings }}"
            overwrite: True
    validate:
      that:
        - number_of: dsjob
          meeting_all_conditions:
            - { property: "transformation_project.name", operator: "=", value: "dstage1" }
          is: 5
        - number_of: database_table
          meeting_all_conditions:
            - { property: "database_schema.database.host.name", operator: "=", value: "YOUR_HOST" }
          is: 10

...将首先从正在运行的环境中收集环境详细信息。

然后,它将从文件file2.isx导入通用元数据(预期为您的剧本的files/子目录),将主机名从MY_HOST重命名为YOUR_HOST,并覆盖任何具有相同身份的现有资产。然后,它将从/some/directory/file1.isx导入DataStage资产到dstage1项目,覆盖任何具有相同身份的现有资产。

请注意,变量的定义顺序没有关系:该角色将负责以适当的顺序导出和导入对象,以确保对象之间的依赖关系得到处理(即,通用元数据和业务元数据在关系之前加载等)。但是,在给定类型内定义的多个对象的顺序可能会影响,具体取决于您自己的依赖关系。

最后,剧本将验证加载是否导致目标环境中预期资产的存在:在dstage1项目中有5个DataStage作业,以及在YOUR_HOST服务器的某些架构和数据库组合中有10个数据库表。

(由于未指定progressexport操作,因此将不会运行它们。)

操作(和对象)结构

以下描述了该角色所涵盖的所有操作和对象类型及其预期结构。

  1. gather - 环境详细信息收集
  2. export / merge / ingest元数据资产类型(与上述操作一样,下面的顺序定义了这些对象类型将被提取和加载的顺序 - 无论它们在操作中出现的顺序如何)
    1. customattrs - 自定义属性定义
    2. common - 通用元数据(应视为低级,并在可能的情况下通过使用类型特定的选项而避免)
    3. logicalmodel - 逻辑模型元数据
    4. physicalmodel - 物理模型元数据
    5. mdm - 主数据管理模型元数据
    6. database - 数据库元数据
    7. datafile - 数据文件元数据
    8. dataclass - 数据类元数据
    9. datastage - DataStage资产
    10. ds_vars - DataStage项目变量
    11. infoanalyzer - 信息分析器资产
    12. openigc - OpenIGC包和资产
    13. extendedsource - 扩展数据源
    14. extensionmap - 扩展映射文档
    15. glossary - 词汇资产
    16. relationships - 元数据关系
    17. omd - 操作元数据
  3. progress - 推进工作流
  4. validate - 验证框架

对于exportmergeingest,可以应用映射来在环境之间转换元数据(例如,重命名、改变包含关系等),并且大多数资产类型也可以通过使用条件来限制。

请注意,您通常可以使用Ansible支持的任何形式编写这些变量结构,例如,这些形式都是等效的,完全取决于您的个人偏好:

var_name: [ { a: "", b: "", c: "" }, { d: "", e: "", f: "" } ]

var_name:
  - { a: "", b: "", c: "" }
  - { d: "", e: "", f: "" }

var_name:
  - a: ""
    b: ""
    c: ""
  - d: ""
    e: ""
    f: ""

许可证

Apache 2.0

作者信息

Christopher Grote

关于项目

Automates extraction and loading of content and structures within Information Server

安装
ansible-galaxy install ibm.infosvr-import-export
许可证
apache-2.0
下载
178