全站搜索
干货分享 | 利用 Ansiable 自动化部署 Veeam Backup & Replication 9.5U4b
作者:Veeam卫盟软件    发布于:2019-11-15 10:27:38    文字:【】【】【

1、Ansiable 介绍


在多云管理的世界里,大家经常会讨论自动化部署问题。而只要是涉及到 Windows 服务器,都不免一声叹息。因为很多工具对 Windows 的支持都不是太好,大部分情况下,我们都要为 Windows 搞一套独立的工具与环境。而我们都喜欢 ansible 的原因是,这个自动化运维工具广泛的支持各种系统,当然,最重要的是它支持 windows ;-)


Ansible 是杰出的自动化运维工具,使用 Python 进行开发,它博采众长,集多种运维工具(puppet、chef、func、fabric...)的优点于一身,可以实现批量系统配置和程序部署、运行命令等功能。如此优秀,以至于在 2015年被 redhat 收入怀中。Ansible 是基于模块进行工作的,本身是一个自动化引擎,我们通常会在 Playbook 中用自动化语言定义什么样的操作会被执行。通俗的讲,Ansible 就像是自动演奏的钢琴,而Playbook 是乐谱,而 Ansible Tower 则是提供 UI 和 Restful API 的接口,Ansible 的架构如下:



想更多的了解这个推荐 Jesse Keating 大神的《Mastering Ansible》也欢迎随时和我讨论。
《Mastering Ansible》 by Jesse Keatinghttps://www.ansible.com/resources/ebooks/mastering-ansible


2、前提:Veeam 的静默安装模式


我创建的 Ansible Playbook 用于在 Windows Server,(这里是我们使用 Windows Server 2019 做为 VBR 服务器)上安装与部署 Veeam Backup & Replication Server 9.5 Update 4b,使用 Ansible 实现的 Veeam Backup & Replication Server 的静默安装。


Veeam 有非常优秀的静默安装模式,几乎所有的组件都可以进行自动安装,这样用户就可以在无人值守的情况下,进行大批量的自定义的安装,对于灾备自动化来说也非常有帮助。


安装的顺序与模块如下,详情请参考,Veeam的官方文档。
User Guide for VMware vSphere > Deployment > Installing Veeam Backup & Replication in Unattended Mode
[《Veeam 静默安装 》] (https://helpcenter.veeam.com/docs/backup/vsphere/silent_mode.html?ver=95u4)
  • Veeam Backup Catalog
  • Veeam Backup & Replication Server
  • Veeam Backup & Replication Console
  • Veeam Explorers:
    • Veeam Explorer for Active Directory
    • Veeam Explorer for Exchange
    • Veeam Explorer for Oracle
    • Veeam Explorer for SharePoint
    • Veeam Explorer for Microsoft SQL
  • Veeam Update 4b


目前在云管理模式下, Veeam Backup Enterprise Manager 和 Cloud Connect Portal 都自定义部署,而且通常是多对一模式,在此我们没有涉及。


3、Ansiable 自动化部署环境准备


3.1 自动化引擎--Ansible 服务器的部署


Linux 版本与 扩展库配置
此处我们使用CentOS 7.7 做为Ansible 服务器,版本如下,我们只需要进行OS的最小化安装即可




[root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.7.1908 (Core)[root@localhost ~]#
先为 Yum 库配置 epel 源,再安装 Ansible

yum install -y epel-release
yum update -y
yum install -y ansible git vim htop

安装 Python PiP 与 pywinrm



yum install -y python-pippip install --upgrade pip # optionalpip install pywinrm

配置 Inventory 文件,定义 hosts

此处为了简便,我们使用 Ansible 默认的 inventory 文件,/etc/ansible/hosts










[VBR]172.16.60.133
[VBR:vars]ansible_connection=winrmansible_user="Administrator"#ansible_ssh_pass=!vault | $ANSIBLE_VAULT;1.1;AES256ansible_ssh_port=5985ansible_winrm_server_cert_validation=ignoreansible_winrm_transport=ntlm

3.2 执行对象--Windows 服务器的部署

在我们的环境中,Windows 是我们自动化安装VBR的服务器。为了使 Windows Server 准备授予 WinRM 访问权限,我使用了以下脚本使我们环境可以快速的Ready!
ConfigureRemotingForAnsible.ps1 脚本,您可以前往Ansible社区的Github下载,脚本执行如下ConfigureRemotingForAnsible.ps1









PS C:\Users\Administrator\Desktop\code> .\ConfigRemotingForAnsiable.ps1 -VerboseVERBOSE: Verifying WinRM service.VERBOSE: PS Remoting is already enabled.VERBOSE: SSL listener is already active.VERBOSE: Basic auth is already enabled.VERBOSE: Firewall rule already exists to allow WinRM HTTPS.VERBOSE: HTTP: Enabled | HTTPS: EnabledVERBOSE: PS Remoting has been successfully configured for Ansible.

3.3 WinRM 及 帐户身份验证模式

Ansible 从1.7之后的版本支持 Windows 服务的管理,管理机仍然需要一台 Linux 服务器,通信方式为 PowerShell,为了与 Windows 通信管理机还需要安装 WinRm 模块,方可和远程 Windows 主机正常通信。

WinRM使用帐户身份验证时,可以使用几种不同的选项,在这里我选择了 NTLM + Ansiable 加密模块 的方式作为 WinRM 帐户身份验证。


注意:在本文中使用的密码方式,是通过Ansible 加密做为密码传递基础的,您可以使用不同的选项,如明文密码。此方法在Hosts文件定义主机时,和在YAML文件中定义Playbook的方法相同。Ansible 加密方法不是本文讨论的重点,如关心此处请查看Ansible 手册。


选项
本地账户
AD账户
凭据委托
HTTP 加密
Basic
Certificate
Kerberos
NTLM
CredSSP


4、连通性测试,win-ping


ansible 有一个非常好的工具win-ping,专门用来测试与Windows的Host定义是不是可以联通。详情可以参照,Asiable的手册。


[《Ansible 用户手册》] (https://https://docs.ansible.com/ansible/2.5/user_guide/quickstart.html)





[root@localhost ~]# ansible VBR -m win_ping --vault-password-file vault_pass.txt 172.16.60.133 | SUCCESS => {    "changed": false,     "ping": "pong"}


5、编写 Asible Playbook 进行自动化编排


Playbook 中的所有预定义应答,请参考 Veeam 的手册,在这里我们定义的服务器为 VBR,这与真实的主机名已经解偶,Playbook 中继承了 win_package Ansible 模块,这可以自动处理参数中所需的大多数转义。在软件源的定义中,我给出了最简单的路径,您可以按照需求进行定义。
























































































































- name: VBR Community Edition Setup  hosts: VBR  gather_facts: yes  vars:    vbr_source: "D:\\"    sql_username: "svc_sql"    sql_userpassword: !vault|        $ANSIBLE_VAULT;1.1;AES256    sql_sapassword: !vault |        $ANSIBLE_VAULT;1.1;AES256  tasks:  - name: Pre - Install 2012 System CLR Types    win_package:        path: "{{ vbr_source }}Redistr\\x64\\SQLSysClrTypes.msi"        state: present    tags: pre  - name: Pre - Install 2012 Shared management objects    win_package:        path: "{{ vbr_source }}Redistr\\x64\\SharedManagementObjects.msi"        state: present    tags: pre  - name: SQL - Create Local SQL User    win_user:        name: "{{ sql_username }}"        password: "{{ sql_userpassword }}"        password_never_expires: yes        state: present        groups:            - Users    tags: pre  - name: SQL - Install SQL 2016 Express    win_package:        path: "{{ vbr_source }}Redistr\\x64\\SqlExpress\\2016SP1\\SQLEXPR_x64_ENU.exe"        product_id: SQL 2016 Express        arguments:         - '/q'        - '/ACTION=Install'        - '/IACCEPTSQLSERVERLICENSETERMS'         - '/FEATURES=SQL'         - '/INSTANCENAME=VEEAMSQL2016'        - '/SQLSVCACCOUNT={{ sql_username }}'        - '/SQLSVCPASSWORD={{ sql_userpassword }}'        - '/SECURITYMODE=SQL'        - '/SAPWD={{ sql_sapassword }}'        - '/ADDCURRENTUSERASSQLADMIN'        - '/UPDATEENABLED=0'        - '/TCPENABLED=1'        - '/NPENABLED=1'    tags: sql  - name: Install VBR Catalog    win_package:        path: "{{ vbr_source }}Catalog\\VeeamBackupCatalog64.msi"        state: present        arguments:            - 'VBRC_SERVICE_ACCOUNT_TYPE=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - nameInstall VBR Server    win_package:        path"{{ vbr_source }}Backup\\Server.x64.msi"        state: present        arguments: "VBR_SERVICE_ACCOUNT_TYPE=1 VBR_SQLSERVER_AUTHENTICATION=1 VBR_SQLSERVER_SERVER=(local)\\VEEAMSQL2016 VBR_SQLSERVER_USERNAME=sa VBR_SQLSERVER_PASSWORD={{ sql_sapassword }} ACCEPT_THIRDPARTY_LICENSES=1 ACCEPTEULA=YES"    tags: vbr  - name: Install VBR Console    win_package:        path: "{{ vbr_source }}Backup\\Shell.x64.msi"        state: present        arguments:            - 'ACCEPTEULA=YES'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Explorer for ActiveDirectory    win_package:        path: "{{ vbr_source }}Explorers\\VeeamExplorerForActiveDirectory.msi"        state: present        arguments:            - 'ACCEPT_EULA=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Explorer for Exchange    win_package:        path: "{{ vbr_source }}Explorers\\VeeamExplorerForExchange.msi"        state: present        arguments:            - 'ACCEPT_EULA=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Explorer for Oracle    win_package:        path: "{{ vbr_source }}Explorers\\VeeamExplorerForOracle.msi"        state: present        arguments:            - 'ACCEPT_EULA=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Explorer for SharePoint    win_package:        path: "{{ vbr_source }}Explorers\\VeeamExplorerForSharePoint.msi"        state: present        arguments:            - 'ACCEPT_EULA=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Explorer for SQL    win_package:        path: "{{ vbr_source }}Explorers\\VeeamExplorerForSQL.msi"        state: present        arguments:            - 'ACCEPT_EULA=1'            - 'ACCEPT_THIRDPARTY_LICENSES=1'    tags: vbr  - name: Install VBR Update 4b    win_package:        path: "{{ vbr_source }}Updates\\veeam_backup_9.5.4.2866.update4b_setup.exe"        product_id: VBR Update 4b        arguments: "/silent /noreboot VBR_AUTO_UPGRADE=1"    tags: update

6、执行 Asible Playbook 实现自动化安装


















































[root@localhost ~]# ansible-playbook ./Veeam_setup.yml --vault-password-file vault_pass.txt
PLAY [VBR Community Edition Setup] *******************************************************************************
TASK [Gathering Facts] *******************************************************************************************ok: [172.16.60.133]
TASK [Pre - Install 2012 System CLR Types] ***********************************************************************changed: [172.16.60.133]
TASK [Pre - Install 2012 Shared management objects] **************************************************************changed: [172.16.60.133]
TASK [SQL - Create Local SQL User] *******************************************************************************ok: [172.16.60.133]
TASK [SQL - Install SQL 2016 Express] ****************************************************************************changed: [172.16.60.133]
TASK [Install VBR Catalog] ***************************************************************************************changed: [172.16.60.133]
TASK [Install VBR Server] ****************************************************************************************changed: [172.16.60.133]
TASK [Install VBR Console] ***************************************************************************************changed: [172.16.60.133]
TASK [Install VBR Explorer for ActiveDirectory] ******************************************************************changed: [172.16.60.133]
TASK [Install VBR Explorer for Exchange] *************************************************************************changed: [172.16.60.133]
TASK [Install VBR Explorer for Oracle] ***************************************************************************changed: [172.16.60.133]
TASK [Install VBR Explorer for SharePoint] ***********************************************************************changed: [172.16.60.133]
TASK [Install VBR Explorer for SQL] ******************************************************************************changed: [172.16.60.133]
TASK [Install VBR Update 4b] *************************************************************************************changed: [172.16.60.133]
PLAY RECAP *******************************************************************************************************172.16.60.133 : ok=14 changed=12 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
此时,可以看到服务器的上我们需要的服务都已经启动























PS C:\Users\Administrator> Get-service Veeam*
Status Name DisplayName------ ---- -----------Running VeeamBackupSvc Veeam Backup ServiceRunning VeeamBrokerSvc Veeam Broker ServiceRunning VeeamCatalogSvc Veeam Guest Catalog ServiceRunning VeeamCloudSvc Veeam Cloud Connect ServiceRunning VeeamDeploySvc Veeam Installer ServiceRunning VeeamDistributi... Veeam Distribution ServiceRunning VeeamMountSvc Veeam Mount ServiceRunning VeeamNFSSvc Veeam vPower NFS ServiceRunning VeeamTransportSvc Veeam Data Mover Service

PS C:\Users\Administrator> Get-service SQL*
Status Name DisplayName------ ---- -----------Stopped SQLAgent$VEEAMS... SQL Server Agent (VEEAMSQL2016)Running SQLBrowser SQL Server BrowserRunning SQLTELEMETRY$VE... SQL Server CEIP service (VEEAMSQL2016)Running SQLWriter SQL Server VSS Writer

参考书籍与推荐阅读


1.《Veeam 静默安装 》https://helpcenter.veeam.com/docs/backup/vsphere/silent_mode.html?ver=95u4
2.《Ansible 用户手册》https://www.ansible.com/resources/ebooks/mastering-ansible
3.《Mastering Ansible》 by Jesse Keatinghttps://www.ansible.com/resources/ebooks/mastering-ansible

就像我们文章的图片一样,自动化可以实现很多事。数据管理平台的现代化,自动化云迁移,DevOps。就连 Playbook 本身也是一个迭代的过程。在此,我希望与您多多讨论,详细内容也可以参考Veeam的官方手册查看详细内容,今后还会计划推出更多精彩内容。请长按下并关注。


Veeam在全球云数据管理领域位居前列。Veeam Availability Platform是最完备的备份解决方案,可以帮助客户成功完成智能数据管理的5个阶段。我们在全球拥有35万家客户,其中包括82%的财富500强企业和66%的全球2,000强企业。我们拥有业界最高的客户满意度评分,是行业平均水平的3.5倍。我们的全球生态系统包括61,000家渠道伙伴;独家经销商思科、慧与(HPE)、联想和NetApp;以及21,000家云和服务提供商。Veeam总部位于瑞士巴尔,在30多个国家设有办事处。



解决方案:
    用例
        改造备份
        业务连续性和灾难恢复
        远程办公室/分支机构

    云解决方案
        多云数据保护
        云备份和 DRaaS
        云数据保留
        云移动性
        公有云和 SaaS 数据保护

    业务类型和行业
        医疗

    基础架构
        备份设备
        融合基础架构
        主存储

行业解决方案:
    HPE + Veeam
    Cisco + Veeam
    NetApp + Veeam
    Dell EMC + Veeam
    ExaGrid + Veeam
    Pure Storage + Veeam
    Quantum + Veeam
    Nutanix + Veeam
    IBM + Veeam
    联想 + Veeam



所有产品:
    企业
    Veeam Availability Suite 、Veeam Backup & Replication、Veeam Agent for Microsoft Windows、Veeam Agent for Linux、Veeam Availability for Nutanix AHV、Veeam Agent for IBM AIX 和 Veeam Agent for Oracle Solaris、Veeam Availability Orchestrator、Veeam Backup for Microsoft Office 365、适用于 VMware vSphere 和 Microsoft Hyper-V 的 Veeam ONE 、Veeam Cloud Connect for the Enterprise;

    中小型企业
    Veeam Agent for Microsoft Windows、Veeam Agent for Linux、Veeam Backup for Microsoft Office 365;

    服务提供商
    Veeam Availability Console、Veeam Endpoint Backup for ConnectWise、Veeam Backup & Replication Plug-in for ConnectWise;

    免费工具
    Veeam Backup & Replication 社区版、Veeam Agent for Microsoft Windows 免费版、Veeam Agent for Linux 免费版、Veeam Availability Console、Veeam Backup for Microsoft Office 365 社区版 、Veeam PN for Microsoft Azure 、Veeam ONE 社区版、Veeam Management Pack for Veeam Backup、Veeam Task Manager for Hyper-V、Veeam FastSCP for Microsoft Azure 、Veeam Report Library for System Center、Veeam Stencils for Microsoft Visio;


云合作伙伴:
    Amazon Web Services
    IBM Cloud
    托管云提供商
    Microsoft Cloud

社区专家:
    Veeam vExperts
    Veeam MVP
    Veeam Vanguards
成都科汇科技有限公司 --- 专业数据备份服务商

无论您的IT架构是 本地化、云端、还是混和云 都能提供一站式数据备份方案。

Veeam  线下代理技术咨询服务

四川成都Veeam解决方案中心

四川成都Veeam体验中心

四川成都Veeam技术服务中心

成都科汇科技有限公司

地址:成都市人民南路四段1号时代数码大厦18F

电话:400-028-1235

QQ:   2231749852

手机:138 8074 7621(微信同号)