使用 OCE 工具包将更改从测试环境传播到生产环境

开发站点模板后,您可以使用 OCE 工具包的命令行界面 (command-line interface, CLI) 在 Oracle Content Management 服务器上将模板从开发传播到测试再到生产。

要传播所做的更改,您可以使用工具包命令在开发、测试和生产服务器上创建站点并管理其生命周期。可以在开发环境中更改站点并将这些更改传播到测试环境和生产环境。您也可以将这组命令行实用程序并入您的脚本环境以管理部署。使用 CLI 实用程序,您可以部署新项(例如资产和组件)以及更新现有内容。

以下步骤说明如何使用 OCE 工具包 CLI 将更改从开发传播到测试再到生产:

  1. 使用相同资料档案库和本地化策略设置开发、测试和生产服务器。

    要将更改从开发服务器传播到测试服务器、再到生产服务器,需要在三个服务器中的每个服务器上使用相同名称和本地化策略设置资料档案库。资产资料档案库的默认本地化策略为 en-US,但是您可以使用不同的策略,前提是该策略在所有三个服务器中都是相同的。

    请参见设置资产资料档案库

  2. Oracle Content Management 中注册您的开发、测试和生产服务器。

    传播对站点的更改之前,需要注册每个服务器。可以使用 OCE 工具包提供的 cec register-server 命令注册服务器:

    cec register-server <name>

    指定以下命令选项:

    • 服务器 URL 的 -e <endpoint>

    • 用于连接到服务器的 -u <user> 和 -p <password>

    • -t <type>,这是可选的,用于设置服务器类型。默认值为 pod_ec

      连接到 Oracle Public Cloud 上的 Oracle Content Management 租户时,仅使用 pod_ec

    例如,以下命令注册作为 Oracle Public cloud 上租户的服务器:

    cec register-server DEV -e https://DEV.example.com -u user1 -p <password>
    

    下一个命令注册 Oracle Content Management 的独立开发实例:

    cec register-server DEV -e https://DEV.git.oraclecorp.example.com -u user1 -p <password>

    注册 Oracle Content Management 服务器后,可以使用 cec list 工具包命令列出其内容。

    以下命令列出开发服务器的内容:

    cec-compontents> cec list -s DEV
     - Logged in to remote server: <host:port>
    Channels:
      Name                           Token
      StarterSite                    <site-id>
    
    Components:
      Name                           Type                       Published
      FooterBar                      Component group
      StarterComponent               Local component
      StarterFooter                  Component group
      StarterNavMenu                 Local component
    
    Localization policies:
      Name                           Required languages         Optional Languages
      en-US                          en-US
    
    Repositories:
      Name
      r
    
    Sites:                           Theme                      Type        Published   Online
      Name                           StarterSiteTheme           Enterprise
    
    Templates:
      Name                           Theme                      Type
      StarterTemplate                StarterTheme               Standard
  3. 将站点模板上载到开发服务器并从该模板创建站点。

    可以使用 cec create-template 命令创建站点模板,然后将该模板上载到开发服务器。然后,可以使用 cec create-site 命令从该模板创建站点。以下命令创建模板并上载模板:

    - cec create-template blog -f BlogTemplate
    - cec upload-template blog -s DEV

    下一个命令从上载的模板创建名为 blog 的站点:

    cec-components> cec create-site blog -t blog -r r -l "en-US" -d "en-US" --server DEV
     - Logged in to remote server: <https:<host:<port>
     - establish user session
     - get template
     - get repository
     - get localization policy
     - creating enterprise site . . .
       name                 blog
       template             blog
       site prefix          blog
       repository           r
       localization policy  en-US
       default language     en-US
     - submit create site site
     - create site in process: percentage 95
     - create site in process: percentage 95
     - create site in process: percentage 95
     - create site in process: percentage 95
     - create site in process: percentage 95
     - site created
  4. 在开发服务器上发布站点并使其联机。

    创建站点后,可以使用 cec control-site 命令发布该站点并使其联机:

    cec-components> cec control-site
    Usage: cec contrl-site <action>
    Perform <action> on site in CEC server. Specify the site with -s <site> Specify the server with -r <server>.
    
      publish
      unpublish
      bring-online
      take-offline
    
    Options: 
      --site, -s    <site> Site
      --server, -r  <server> The registered CEC server
      --help, -h    Show help
    
    Examples:
      cec control-site publish -s Site1              Publish site Site1 on the server
      cec control-site publish -s Site1 -r UAT       Publish site Site1 on the registered server UAT
      cec control-site unpublish -s Site1 -r UAT     Inpublish site Site1 on the registered server UAT
      cec control-site bring-online -s Site1 -r UAT  Bring site Site1 online on the registered server UAT
      cec control-site take-offline -s Site1 -r UAT  Take site Site1 offline on the registered server UAT
    
    Not enough non-option arguments: got 0, need at least 1
    cec-components> cec control-site publish --site blog --server DEV
     - Logged in to the remote server: https://<host>:<port>
     - establish user session
     - get site: runtimeStatus: offline publishStatus: unpublished
     - submit publish site
     - publish in process: percentage 20
     - publish in process: percentage 40
     - publish in process: percentage 49
     - publish in process: percentage 49
     - publish in process: percentage 50
     - publish in process: percentage 50
    
  5. 要将站点从 DEV 移到 UAT,需要将该站点打包。用于在服务器之间移动站点的打包模型是模板。从在开发服务器上创建的站点创建新模板并下载该模板。

    以下示例中的 cec create-template-from-site 命令从 blog 创建名为 blog2 的站点模板。

    cec create-template-from-site blog2 -s blog

    使用 cec download-template 命令下载从开发站点创建的模板:

    cec-components: cec download-template blog2 --server DEV
     - Logged in to remote server: https://<host>:<port>
     - establish user session
     - export template
     - template download to /Users/<user-name>/devenv/git/webclient/developer/sites-toolkit/cec-components/dist/blog2.zip
     - the template will be at /Users/<user-name>/devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/templates/blog2
     - the theme for the template will be at /Users/<user-name>/devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/themes/blogTheme
     - create link _scs_theme_root_
     - create link _scs_design_name_
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Author-Summary
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Post-Content
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Post-Header
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Post-Search-Result
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Post-Post-Sidebar
     - override component /Users/<user-name>devenv/git/webclient/developer/sites-toolkit/cec-components/src/main/components/Starter-Blog-Post-Summary
     - set themeName to blogTheme in siteinfo.json
     - unzip tmplate content file
     *** template is ready to test: https://localhost:8085/templates/blog2
    cec upload-template blog2 --server UAT
  6. 上载模板以创建内容类型和内容布局映射。

    cec upload-template blog2 --server UAT
  7. 上载模板,但是从模板中排除内容项(内容模板)。

    cec upload-template blog2 --server UAT -x

    您这样做是为了创建一个站点,其中内容与原始站点具有相同 GUID。从包含内容的模板创建站点时,新站点中的所有内容都将具有新的 GUID。因为我们要允许内容更新,而不是创建新内容,所以您需要从模板排除内容。

  8. 从模板创建站点。

    cec create-site blog -t blog2 -r r -l "en-US" -d "end-US" --server UAT
  9. 将内容模板上载到站点的通道和集合。您需要这样做,因为您在步骤 7 中从模板排除了该内容。

    cec upload-content blog2 -t -r r -c blog -l "blog site" --server UAT 
  10. 在测试服务器上发布站点并使其联机。

    使用 cec control-site 命令发布站点并使其联机:

    cec-components> cec control-site publish --site blog --server UAT
     - Logged in to the remote server: https://<host>:<port>
     - establish user session
     - get site: runtimeStatus: offline publishStatus: unpublished
     - submit publish site
     - publish in process: percentage 20
     - publish in process: percentage 40
     - publish in process: percentage 49
     - publish in process: percentage 49
     - publish in process: percentage 50
     - publish in process: percentage 50
     - publish blob finished
  11. 如果您之后在 DEV 服务器上对站点 blog 进行更改,您可以将这些更改传播到您已在 UAT 服务器上创建的站点。

  12. 从您的站点创建另一个模板,以便该模板将具有您的更改。

    cec create-template-from-site blog3 -s blog --server DEV
  13. 下载模板。

    cec download-template blog3 -s DEV
  14. 上载模板并从该模板创建站点,以便将更改传播到测试环境。

    cec upload-template blog3 -s UAT

    此命令创建或更新已更改的任何组件和主题,但排除内容。

  15. 现在使用 update-site 命令获取内容并更新页。

    cec update-site blog -t blog3 - UAT

    例如:

    cec-components> cec update-site blog -t blog3 --server UAT
    Updating site: blog3
     - Logged in to remote server: https://<host>:<port>
     - pages               : updating file# 6    of 6    files
     - content             : updating file# 3    of 3    files
     - System Files        : updating file# 5    of 5    files
     - controller          : no files in update, removing files on server
     - favicons            : no files in update, removing files on server
     - misc                : no files in update, removing files on server
     - seo                 : no files in update, removing files on server
     - system              : no files in update, removing files on server
     - created content file /Users/<user-name>/devenv/git/webclient/developer/sites-toolkit/cec-compnents/dist/blog3_export.zip
     - upload content file
     - get CSRF token
     - submit import job, updating content
     - import job in progress. . .
     - import job in progress. . .
     - import job in progress. . .
     - content imported:
    Update Site Results:
     - Site Pages          : completed with 0 errors.
     - Embedded Content    : completed with 0 errors.
     - System Files        : completed with 0 errors.
     - Settings Files      : completed with 0 errors.
     - Content Update      : completed with 0 errors.
  16. 检查站点以验证是否传播了更改。

  17. 执行相同步骤,像您将站点从 DEV 移到 UAT 那样从 UAT 服务器移到 PROD 服务器。

  18. 在您的生产服务器上创建站点,使其联机并验证更改。

    可以使用 cec list 命令查看生产站点的内容,并确保它包括您在开发环境中进行的更改。此外,您还可以检查站点以验证更改是否已传播到生产。