Skip to content

Commit

Permalink
Version 4.0.3
Browse files Browse the repository at this point in the history
Support for Veeam Version 10.0 and 10.0a
  • Loading branch information
goodrum authored Aug 17, 2020
2 parents 232c542 + 7695e6d commit ec2f6c7
Show file tree
Hide file tree
Showing 98 changed files with 839 additions and 473 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ bin/*
.kitchen.local.*.yml

.delivery/cli.toml

.vscode
47 changes: 24 additions & 23 deletions .kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ provisioner:
- 35 # 35 is the exit code signaling that the node is rebooting
- 259 # WinRM error during kitchen test when rebooting after installing .NET 4.5.2
max_retries: 2
wait_for_retry: 120
client_rb:
exit_status: :enabled # Opt-in to the standardized exit codes
client_fork: false # Forked instances don't return the real exit code
client_fork: false # Forked instances don't return the real exit code

verifier:
name: inspec
Expand All @@ -44,42 +45,42 @@ suites:
- recipe[veeam::catalog]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/catalog
- test/inspec/10.0.0.4461/catalog
attributes:
veeam:
version: '9.5'
version: "10.0"
- name: console
run_list:
- recipe[veeam::console]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/console
- test/inspec/10.0.0.4461/console
attributes:
veeam:
version: '9.5'
version: "10.0"
console:
accept_eula: true
- name: server
run_list:
- recipe[veeam::server]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/server
- test/inspec/10.0.0.4461/server
attributes:
veeam:
version: '9.5'
version: "10.0"
server:
accept_eula: true
- name: server_with_console
run_list:
- recipe[veeam::server_with_console]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/server
- test/inspec/9.5.0.711/console
- test/inspec/10.0.0.4461/server
- test/inspec/10.0.0.4461/console
attributes:
veeam:
version: '9.5'
version: "10.0"
server:
accept_eula: true
console:
Expand All @@ -89,24 +90,24 @@ suites:
- recipe[veeam::server_with_catalog]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/catalog
- test/inspec/9.5.0.711/server
- test/inspec/10.0.0.4461/catalog
- test/inspec/10.0.0.4461/server
attributes:
veeam:
version: '9.5'
version: "10.0"
server:
accept_eula: true
- name: standalone_complete
run_list:
- recipe[veeam::standalone_complete]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/catalog
- test/inspec/9.5.0.711/server
- test/inspec/9.5.0.711/console
- test/inspec/10.0.0.4461/catalog
- test/inspec/10.0.0.4461/server
- test/inspec/10.0.0.4461/console
attributes:
veeam:
version: '9.5'
version: "10.0"
server:
accept_eula: true
console:
Expand All @@ -116,10 +117,10 @@ suites:
- recipe[veeam::proxy_server]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/console
- test/inspec/10.0.0.4461/console
attributes:
veeam:
version: '9.5'
version: "10.0"
console:
accept_eula: true
proxy:
Expand All @@ -129,10 +130,10 @@ suites:
- recipe[veeam::proxy_remove]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/console
- test/inspec/10.0.0.4461/console
attributes:
veeam:
version: '9.5'
version: "10.0"
console:
accept_eula: true
proxy:
Expand All @@ -143,10 +144,10 @@ suites:
- recipe[veeam::upgrade]
verifier:
inspec_tests:
- test/inspec/9.5.0.711/server
- test/inspec/10.0.0.4461/server
attributes:
veeam:
version: '9.5.0.1536'
version: "10.0.0.4461"
server:
accept_eula: true
console:
Expand Down
8 changes: 5 additions & 3 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ Metrics/LineLength:
Max: 120
Style/FrozenStringLiteralComment:
Enabled: false
Style/TrailingCommaInLiteral:
# ChefAutomate will throw an error due to chages in protocol after
# Rubocop 0.39.0.
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: no_comma
# Style/TrailingCommaInLiteral:
# # ChefAutomate will throw an error due to chages in protocol after
# # Rubocop 0.39.0.
# EnforcedStyleForMultiline: no_comma
EndOfLine:
# This is an unnecessary test and will cause issues with testing on Windows.
Enabled: false
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"workbench.colorTheme": "Solarized Dark"
}
75 changes: 75 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,44 @@
# Change log information for Veeam Cookbook

## Version 4.0.3
2020-08-14

UPDATE: Library::Helper to include 10.0.1.4854 (10.0a) installation
UPDATE: Resource::Console to correct product version to look at individual solution
UPDATE: Resource::Catalog to correct product version to look at individual solution

## Version 4.0.2
2020-08-12

Updated - Changed SQL authentication mode from "Mixed" to "Windows"
Updated the upgrade process to handle incremental upgrades and setting the correct build_version based on the package_url

## Version 4.0.1
2020-08-6

Added support for Veeam 9.5.4b

## Version 4.0.0
2020-07-15

Major update to include support for Veeam 10.0.0 including changes to the method for installation of SQL Express and supported .NET Framework

### Included:

- UPDATE: Libraries::Helper to support v10.0+
- UPDATE: Resources::Prerequisites to handle new library methods to look up dotnet and sqlexpress versions
- UPDATE: Templates::sql_build_script to pass sqlexpress media path from helper
- ADD: Inspec::10.0.0.4461 tests
- UPDATE: Spec::lwrps/veeam_prerequisites_spec to support Chef 13+
- UPDATE: Resources::Host to add script marker comments for stubs
- UPDATE: Resources::Proxy to add script marker comments for stubs
- UPDATE: Unit tests with new shell_out_compacted method for command stubbing
- UPDATE: all files to support updated rubcop and foodcritic standards
- UPDATE: Helpers::ExtractInstaller to use archive_file resource
- UPDATE: CHANGELOG.md
- UPDATE: README.md
- BUMP: Metadata 4.0.0

## Version 3.0.2
2020-07-24

Expand All @@ -10,6 +49,42 @@ Minor fix update for SQL Express installation on domain joined computer.

Minor fix update to include `delay_min 1` to all reboot resources to cover a chef bug that lets some test-kitchen environments crash.

## Version 3.0.0
2019-01-22

Major update to include support for Veeam 9.5.4 including changes to the method for installation and upgrades

### Included:

- UPDATE: Kitchen.yml typo
- UPDATE: Libraries::Helper to enhance prerequisites versions
- UPDATE: Libraries::Helper to include support to ignore_errors in validate_cmd method when called from method find_current_veeam_version
- UPDATE: Libraries::Helper to include version information for explorers and win_clean_path helper
- UPDATE: Libraries::Helper to include links for 9.5.4

- UPDATE: Recipes::Catalog to include calling veeam_upgrade by default
- UPDATE: Recipes::Console to include veaam_upgrade
- UPDATE: Recipes::HostMgmt to support 9.5.4
- ADD: Recipes::Prerequisites
- UPDATE: Recipes::ProxyServer to support 9.5.4
- UPDATE: Recipes::Server to support 9.5.4
- UPDATE: Recipes::ServerWithConsole to include upgrades and build version handling
- UPDATE: Recipes::StandaloneComplete to support 9.5.4

- UPDATE: Resources to use win_clean_path instead of win_friendly_path from Windows Cookbook
- UPDATE: Resources::Catalog to handle installation of 9.5.4 media and upgrades of the current version from 9.5.0 to 9.5.4 when version is selected
- UPDATE: Resources::Console to support upgrading and installing 9.5.4
- UPDATE: Resources::Explorer to support 9.5.4 version upgrades
- UPDATE: Resources::Prerequisites to support new version of SQL Express installation based on the build_version
- UPDATE: Resources::Server to enable support for upgrading the version to 9.5.4
- UPDATE: Resources::Upgrade to initiate an upgrade when the Veeam Backup Catalog version does not match the requested build version

- UPDATE: Templates::SqlBuildScript to handle installation of SQL Express 2016 when performing a new installation of 9.5 Update 4
- ADD: Test::Inspec/9.5.4

- UPDATE: README
- BUMP: Metadata to Version 3.0.0

## Version 2.1.1
2018-08-25

Expand Down
29 changes: 21 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ The installation of SQL Express requires that a temporary Scheduled Task be crea

### Chef

- Chef 12.5+
- Chef 16.2+

### Cookbooks

Expand All @@ -88,7 +88,7 @@ The installation of SQL Express requires that a temporary Scheduled Task be crea
### Installation Media
| Attribute | Type | Description | Default Value | Mandatory |
| --- | --- | --- | --- | --- |
| `node['veeam']['version']` | String. | Base version of Veeam to install and used to download the appropriate ISO. Supported versions are '9.0' and '9.5' | '9.5' | |
| `node['veeam']['version']` | String. | Base version of Veeam to install and used to download the appropriate ISO. Supported versions are '9.0', '9.5' and '10.0 | '10.0' | |
| `node['veeam']['installer']['package_url']` | String. | Custom URL for the Veeam Backup and Replication ISO. If not provided, then the ISO will be downloaded directly from Veeam | nil | |
| `node['veeam']['installer']['package_checksum']` | String. | Sha256 hash of the remote ISO file. Required when setting the `node['veeam']['installer']['package_url']`| nil | |
| `node['veeam']['license_url']` | String. | URL for downloading the license filed used by this server. If not provided, the [license data_bag](#veeam-backup-and-replication-license-file) will be checked or the software will be installed in evaluation mode. | nil | |
Expand Down Expand Up @@ -130,7 +130,6 @@ The installation of SQL Express requires that a temporary Scheduled Task be crea
| `node['veeam']['server']['vbr_sqlserver_password']` | String | This parameter must be used if you have specified the `VBR_SQLSERVER_AUTHENTICATION` parameter. Specifies a password to connect to the Microsoft SQL Server in the SQL Server authentication mode. | nil | |
| `node['veeam']['server']['pf_ad_nfsdatastore']` | String | Specifies the vPower NFS root folder to which Instant VM Recovery cache will be stored. | C:\ProgramData\Veeam\Backup\NfsDatastore\ | |
| `node['veeam']['server']['keep_media']` | TrueFalse | Determines if the recipe should keep the media at the end of the installation. | false | |
| `node['sql_server']['server_sa_password']` | String | Configures the SQL Admin password for the SQLExpress instance. | 'Veeam1234' | |
| `node['veeam']['server']['explorers']` | Array. List of Veeam Explorers to install. | 'ActiveDirectory','Exchange','SQL','Oracle','SharePoint' | |

### Console
Expand Down Expand Up @@ -183,18 +182,26 @@ The attribute `node['veeam']['version']` is used to evaluate the ISO download pa
| **9.5.0.1536** | [VeeamBackup&Replication_9.5.0.1536.Update3.iso](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1536.Update3.iso) | 5020ef015e4d9ff7070d43cf477511a2b562d8044975552fd08f82bdcf556a43 |
| **9.5.0.1922** | [VeeamBackup&Replication_9.5.0.1922.Update3a.iso](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1922.Update3a.iso) | 9a6fa7d857396c058b2e65f20968de56f96bc293e0e8fd9f1a848c7d71534134 |
| **9.5.4.2615** | [VeeamBackup&Replication_9.5.4.2615.Update4.iso](http://download.veeam.com/VeeamBackup&Replication_9.5.4.2615.Update4.iso) | 8a594cec74059f9929ea765ac5e70a49da6fc93803b567cbb9d74fbb1a49a6cc |
| **9.5.4.2866** | [VeeamBackup&Replication_9.5.4.2866.Update4b_20191210.iso](https://download2.veeam.com/VeeamBackup&Replication_9.5.4.2866.Update4b_20191210.iso) | cfc41596154563f60b74320634589721fd1110c87e04632068bc5234aada342e |
| **10.0** | [VeeamBackup&Replication_10.0.0.4461.iso](http://download.veeam.com/VeeamBackup&Replication_10.0.0.4461.iso) | 26ddcc3df046af1ca1458b3040fc9024b4361ae1e51e1cf4516afe53fb024650 |
| **10.0.0.4461** | [VeeamBackup&Replication_10.0.0.4461.iso](http://download.veeam.com/VeeamBackup&Replication_10.0.0.4461.iso) | 26ddcc3df046af1ca1458b3040fc9024b4361ae1e51e1cf4516afe53fb024650 |


### Veeam Backup and Replication Update Zip files
The attribute `node['veeam']['build']` is used to evaluate the Zip download path and checksum for the installation media. When provided, the build selected will be downloaded based on the value found in `libraries/helper.rb`. This media path can be overridden by providing the appropriate installation media attributes - `node['veeam']['installer']['update_url']` and `node['veeam']['installer']['update_checksum']`. By default, these attributes are matching their corresponding `node['veeam']['installer']['package_url']` and `node['veeam']['installer']['package_checksum']` values and the system will download the Zip every time.

_Note: As of 9.5 Update 4, ISO based upgrades must be done using the `package_url` method and not using the `update_url` process to ensure that prerequisites are installed completely._

| Version | ISO URL | SHA256 |
| ------------- |-------------|-------------|
| **Update 1** | [VeeamBackup&Replication_9.5.0.823_Update1.zip](https://download.veeam.com/VeeamBackup&Replication_9.5.0.823_Update1.zip) | c07bdfb3b90cc609d21ba94584ba19d8eaba16faa31f74ad80814ec9288df492 |
| **Update 2** | [VeeamBackup&Replication_9.5.0.1038.Update2.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1038.Update2.zip) | d800bf5414f1bde95fba5fddbd86146c75a5a2414b967404792cc32841cb4ffb |
| **Update 3** | [VeeamBackup&Replication_9.5.0.1536.Update3.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1536.Update3.zip) | 38ed6a30aa271989477684fdfe7b98895affc19df7e1272ee646bb50a059addc |
| **Update 3a** | [VeeamBackup&Replication_9.5.0.1922.Update3a.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1922.Update3a.zip) | f6b3fc0963b09362c535ef49691c51d368266cc91d6833c80c70342161bb7123 |
| **Update 4** | [VeeamBackup&Replication_9.5.4.2615.Update4.iso](http://download.veeam.com/VeeamBackup&Replication_9.5.4.2615.Update4.iso) | 8a594cec74059f9929ea765ac5e70a49da6fc93803b567cbb9d74fbb1a49a6cc |
| **9.5 Update 1** | [VeeamBackup&Replication_9.5.0.823_Update1.zip](https://download.veeam.com/VeeamBackup&Replication_9.5.0.823_Update1.zip) | c07bdfb3b90cc609d21ba94584ba19d8eaba16faa31f74ad80814ec9288df492 |
| **9.5 Update 2** | [VeeamBackup&Replication_9.5.0.1038.Update2.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1038.Update2.zip) | d800bf5414f1bde95fba5fddbd86146c75a5a2414b967404792cc32841cb4ffb |
| **9.5 Update 3** | [VeeamBackup&Replication_9.5.0.1536.Update3.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1536.Update3.zip) | 38ed6a30aa271989477684fdfe7b98895affc19df7e1272ee646bb50a059addc |
| **9.5 Update 3a** | [VeeamBackup&Replication_9.5.0.1922.Update3a.zip](http://download.veeam.com/VeeamBackup&Replication_9.5.0.1922.Update3a.zip) | f6b3fc0963b09362c535ef49691c51d368266cc91d6833c80c70342161bb7123 |
| **9.5 Update 4** | [VeeamBackup&Replication_9.5.4.2615.Update4.iso](http://download.veeam.com/VeeamBackup&Replication_9.5.4.2615.Update4.iso) | 8a594cec74059f9929ea765ac5e70a49da6fc93803b567cbb9d74fbb1a49a6cc |
| **9.5 Update 4b** | [VeeamBackup&Replication_9.5.4.2866.Update4b_20191210.zip](https://download.veeam.com/VeeamBackup&Replication_9.5.4.2866.Update4b_20191210.zip) | e0b29d2585ba2adb0914976bf83d7f0e11c2db7365af9ff43a33cb36b23425c2 |



### Veeam Backup and Replication License file
The server must be licensed to unlock the full potential of the application. The attribute `node['veeam']['server']['evaluation']` should be configured as `false`. To license, choose one of the below options.
Expand All @@ -214,6 +221,9 @@ The process to perform upgrades requires that the appropriate installation media
> As of Update 4, the upgrade process has changed. The update to version 9.5.4+ will be automatically applied if the installer media leverages Update4. Due to the nature of the process, a reboot is required. The Automatic Reboot will occur at the end of the convergance unless the attribute `nde['veeam']['reboot_on_upgrade']` equals false
### Configuring the Updates

_Note: As of 9.5 Update 4, ISO based upgrades must be done using the `package_url` method and not using the `update_url` process to ensure that prerequisites are installed completely._

Updates are identified by passing one of the following to the attributes for the server:
1. `node['veeam']['installer']['update_url']` attribute should contain either the full installation ISO or the update ZIP link. The file name must include the full build name like such:
- VeeamBackup&Replication_9.5.0.1536.Update3.iso
Expand All @@ -227,6 +237,9 @@ Updates are identified by passing one of the following to the attributes for the
- 9.5.0.1536 (Update3)
- 9.5.0.1922 (Update3a)
- 9.5.4.2615 (Update4)
- 9.5.4.2866 (Update4b)
- 10.0 (defaults to GA)
- 10.0.0.4461 (GA)

### Upgrade Process and Warnings
*Warning*
Expand Down
4 changes: 2 additions & 2 deletions attributes/catalog.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# Cookbook Name:: veeam
# Cookbook:: veeam
# Attributes:: catalog
#
# Copyright (c) 2017 Exosphere Data LLC, All Rights Reserved.
# Copyright:: (c) 2020 Exosphere Data LLC, All Rights Reserved.

default['veeam']['catalog']['install_dir'] = 'C:\\Program Files\\Veeam\\Backup and Replication\\'
default['veeam']['catalog']['vm_catalogpath'] = nil
Expand Down
4 changes: 2 additions & 2 deletions attributes/console.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# Cookbook Name:: veeam
# Cookbook:: veeam
# Attributes:: console
#
# Copyright (c) 2017 Exosphere Data LLC, All Rights Reserved.
# Copyright:: (c) 2020 Exosphere Data LLC, All Rights Reserved.

default['veeam']['console']['accept_eula'] = false
default['veeam']['console']['install_dir'] = 'C:\\Program Files\\Veeam\\Backup and Replication\\'
Expand Down
10 changes: 6 additions & 4 deletions attributes/default.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#
# Cookbook Name:: veeam
# Cookbook:: veeam
# Attributes:: default
#
# Copyright (c) 2017 Exosphere Data LLC, All Rights Reserved.
# Copyright:: (c) 2020 Exosphere Data LLC, All Rights Reserved.

default['veeam']['version'] = '9.5'
default['veeam']['version'] = '10.0'
default['veeam']['installer']['package_url'] = nil # Local or custom URL location for ISO
default['veeam']['installer']['package_checksum'] = nil # Sha256 checksum of ISO
default['veeam']['license_url'] = nil
Expand All @@ -15,8 +15,10 @@
node['veeam']['version']
elsif node['veeam']['installer']['update_url'] == node['veeam']['installer']['package_url']
/(\d+.\d+.\d+.\d+)/.match(node['veeam']['installer']['package_url'].split('/')[-1]).captures[0]
elsif !node['veeam']['installer']['package_url'].nil?
/(\d+.\d+.\d+.\d+)/.match(node['veeam']['installer']['package_url'].split('/')[-1]).captures[0]
else
/(\d+.\d+.\d+.\d+)/.match(node['veeam']['installer']['update_url'].split('/')[-1]).captures[0]
node['veeam']['version']
end
default['veeam']['reboot_on_upgrade'] = true
default['veeam']['upgrade']['keep_media'] = false
4 changes: 2 additions & 2 deletions attributes/host.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# Cookbook Name:: veeam
# Cookbook:: veeam
# Attributes:: host
#
# Copyright (c) 2017 Exosphere Data LLC, All Rights Reserved.
# Copyright:: (c) 2020 Exosphere Data LLC, All Rights Reserved.

default['veeam']['host']['vbr_server'] = nil
default['veeam']['host']['vbr_port'] = 9392
Expand Down
4 changes: 2 additions & 2 deletions attributes/proxy.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# Cookbook Name:: veeam
# Cookbook:: veeam
# Attributes:: proxy
#
# Copyright (c) 2017 Exosphere Data LLC, All Rights Reserved.
# Copyright:: (c) 2020 Exosphere Data LLC, All Rights Reserved.

default['veeam']['proxy']['vbr_server'] = nil
default['veeam']['proxy']['vbr_port'] = 9392
Expand Down
Loading

0 comments on commit ec2f6c7

Please sign in to comment.