...
3. Deploy application with new .ebextension config.
Code Block |
---|
eb deploy |
AWS EC2 User Data
...
Script
You can install Breeze agent on AWS EC2 instance's instances using 'EC2 instance user data' during the initial launch of the an instance. The script involves the following steps:
...
2. Upload them to the S3 Bucket.
Generate a Presigned presigned object URL for each installer
...
Windows must have Powershell preinstalled. This script will work for all Windows Server versions starting 2012 R2 and newer.
SCCM
To install Breeze Agent via SCCM, we recommend using PowerShell script that will download the agent installer to a target machine and install it.
Download the Breeze Agent installer to any location where it can be downloaded by the target machine. In our example, we will use a shared folder with permission for account that set as Client Push Installation account for SCCM Site.
1. Create a new script in Software Library using the sample below.
2. Change the $url variable to your Breeze Agent installer location.
3. Make sure that target systems have access to the installer’s location.
4. Run the script on system or group to install Breeze Agent.
Script sample:
Code Block |
---|
function New-TemporaryDirectory {
$parent = [System.IO.Path]::GetTempPath()
[string]$name = [System.Guid]::NewGuid()
New-Item -ItemType Directory -Path (Join-Path $parent $name)
}
$url = "\\10.0.0.69\d\breeze-agent.exe"
$tmp_dir = New-TemporaryDirectory
$agent_sfx = "$tmp_dir\breeze-agent.exe"
# download agent installer
(New-Object System.Net.WebClient).DownloadFile($url, $agent_sfx)
# install agent
Start-Process $agent_sfx -ArgumentList '-gm2' -NoNewWindow -Wait
# clean up
Remove-Item "$tmp_dir" -recurse |
Chef
1. Clone the public-utilities repo to your server:
Code Block |
---|
git clone https://github.com/cloudaware/public-utilities.git |
2. Put your Breeze Agent installer files to the public-utilities/chef-modules/breeze-agent/files directory. Ensure the files are named breeze-agent-linux.tgz and breeze-agent-windows.exe.
3. Copy Breeze Agent cookbook to your cookbook directory and upload it to the server:
Code Block |
---|
cp -r public-utilities/chef-modules/breeze-agent ~/cookbooks/
knife cookbook upload breeze-agent |
4. Create the breeze-agent role:
Code Block |
---|
export EDITOR=vim #any other editor can be selected, like nano for instance
knife role create breeze-agent |
Once in the editor, replace everything with the following and save:
Code Block |
---|
{
"name": "breeze-agent",
"description": "",
"json_class": "Chef::Role",
"default_attributes": {},
"override_attributes": {},
"chef_type": "role",
"run_list": [ "recipe[breeze-agent]" ],
"env_run_lists": {}
} |
5. Add the role to the nodes that you need or to all nodes using your web interface or the folowing command:
Code Block |
---|
knife node run_list add $NODE_NAME 'role[breeze-agent]' #Where $NODE_NAME is the name of the actual node |
To add the role to all nodes, run:
Code Block |
---|
for node in `knife node list`;do knife node run_list add $node 'role[breeze-agent]';done; |
Next chef-client will apply the changes on the nodes. Please note that it may take some time.
Puppet
1. Put the Puppet module folder to the /etc/puppetlabs/code/environments/production/modules/.
2. Put Breeze Agent installer files to the /etc/puppetlabs/code/environments/production/modules/breeze_agent/files directory.
3. Attach breeze_agent class to the necessary group in the Puppet Dashboard.
4. Add the required variables breeze_package_linux and breeze_package_windows.
Ansible
1. Put Breeze Agent installer files to the 'files' directory.
2. Specify the installer file name and hosts in breeze_agent_linux.yml and breeze_agent_windows.yml
Code Block |
---|
- hosts: linux
vars:
linux_agent: linux-breeze-agent.tgz |
AWS Systems Manager Distributor
The user creates a package with Breeze Agent. The distributor publishes this package to System Manager managed instances. Then the agent can be installed or uninstalled:
...
one time by using AWS Systems Manager Run Command
...
on a schedule by using AWS Systems Manager State Manager
...
The distributor package consists of a manifest and two .zip archive files for Windows and Linux platforms. Each archive contains install and uninstall scripts, as well as Breeze Agent distro respectively to the platform. The manifest template and scripts can be obtained from Github repository.
In the file manifest.json find the field "version" and change its value to something meaningful. This is also the value of Version name that should be specified when the package will be added to the Distributor (it becomes part of the AWS Systems Manager document). A version value can contain letters, numbers, underscores, hyphens, and periods, and be from 3 to 128 characters in length. It is recommended to use a human-readable value.
...
A Linux archive named breeze-agent-linux.zip
should contain next files: install.sh
, uninstall.sh
and agent.XXX.YY.Z.x86_64.linux.tgz
(the Linux Breeze Agent distro as it was downloaded from CMDB).
A Windows archive named breeze-agent-windows.zip
should contain such files as: install.ps1
, uninstall.ps1
and agent.XXX.YY.Z.windows.signed.exe
(the Windows Breeze Agent distro as it was downloaded from CMDB).
Ensure that the script files have the correct lines breaks, namely LF (\n == 0x0A) on Linux and CRLF (\r\n == 0x0D 0x0A) on Windows.
For each archive file mentioned in the manifest should be specified a sha256 checksum. In order to calculate it, the following commands can be used:
Linux: shasum -a 256 file-name.zip
or openssl dgst -sha256 file-name.zip
Windows: Get-FileHash -Path file-name.zip
(powershell)
In the manifest.json
find the section "files" and replace ARCHIVE_CHECKSUM
placeholders with the calculated checksums.
...
AWS Systems Manager Distributor
You can install Breeze agent on AWS EC2 instances using AWS Systems Manager Distributor.
Description
Create a package with Breeze Agent. The distributor will publish this package to System Manager managed instances. Then the agent can be installed or uninstalled:
one time by using AWS Systems Manager Run Command
on a schedule by using AWS Systems Manager State Manager
Prerequisites
The distributor package consists of a manifest and two .zip
archive files for Windows and Linux platforms. Each archive contains install and uninstall scripts, as well as Breeze Agent distro respectively to the platform. The manifest template and scripts can be obtained from Github repository.
In the file manifest.json
find the field "version"
and change its value to something meaningful. This is also the value of Version name that should be specified when the package will be added to the Distributor (it becomes part of the AWS Systems Manager document). A version value can contain letters, numbers, underscores, hyphens, and periods, and be from 3 to 128 characters in length. It is recommended to use a human-readable value.
Preparing package files
A Linux archive named breeze-agent-linux.zip
should contain next files: install.sh
, uninstall.sh
and agent.XXX.YY.Z.x86_64.linux.tgz
(the Linux Breeze Agent distro as it was downloaded from CMDB).
A Windows archive named breeze-agent-windows.zip
should contain such files as: install.ps1
, uninstall.ps1
and agent.XXX.YY.Z.windows.signed.exe
(the Windows Breeze Agent distro as it was downloaded from CMDB).
Note |
---|
Ensure that the script files have the correct lines breaks, namely |
A sha256
checksum should be specified for each archive file mentioned in the manifest. In order to calculate it, use the following commands:
Linux:
Code Block |
---|
shasum -a 256 file-name.zip |
or
Code Block |
---|
openssl dgst -sha256 file-name.zip |
Windows:
Code Block |
---|
Get-FileHash -Path file-name.zip |
Windows must have Powershell preinstalled.
In the manifest.json
find the section "files"
and replace ARCHIVE_CHECKSUM
placeholders with the calculated checksums.
Distributor package
Create an Advanced
package in AWS Systems Manager as described in AWS documentation.
SCCM
To install Breeze Agent via SCCM, we recommend using PowerShell script that will download the agent installer to a target machine and install it.
Download the Breeze Agent installer to any location where it can be downloaded by the target machine. In our example, we will use a shared folder with permission for account that set as Client Push Installation account for SCCM Site.
1. Create a new script in Software Library using the sample below.
2. Change the $url variable to your Breeze Agent installer location.
3. Make sure that target systems have access to the installer’s location.
4. Run the script on system or group to install Breeze Agent.
Script sample:
Code Block |
---|
function New-TemporaryDirectory {
$parent = [System.IO.Path]::GetTempPath()
[string]$name = [System.Guid]::NewGuid()
New-Item -ItemType Directory -Path (Join-Path $parent $name)
}
$url = "\\10.0.0.69\d\breeze-agent.exe"
$tmp_dir = New-TemporaryDirectory
$agent_sfx = "$tmp_dir\breeze-agent.exe"
# download agent installer
(New-Object System.Net.WebClient).DownloadFile($url, $agent_sfx)
# install agent
Start-Process $agent_sfx -ArgumentList '-gm2' -NoNewWindow -Wait
# clean up
Remove-Item "$tmp_dir" -recurse |
Chef
1. Clone the public-utilities repo to your server:
Code Block |
---|
git clone https://github.com/cloudaware/public-utilities.git |
2. Put your Breeze Agent installer files to the public-utilities/chef-modules/breeze-agent/files directory. Ensure the files are named breeze-agent-linux.tgz and breeze-agent-windows.exe.
3. Copy Breeze Agent cookbook to your cookbook directory and upload it to the server:
Code Block |
---|
cp -r public-utilities/chef-modules/breeze-agent ~/cookbooks/
knife cookbook upload breeze-agent |
4. Create the breeze-agent role:
Code Block |
---|
export EDITOR=vim #any other editor can be selected, like nano for instance
knife role create breeze-agent |
Once in the editor, replace everything with the following and save:
Code Block |
---|
{
"name": "breeze-agent",
"description": "",
"json_class": "Chef::Role",
"default_attributes": {},
"override_attributes": {},
"chef_type": "role",
"run_list": [ "recipe[breeze-agent]" ],
"env_run_lists": {}
} |
5. Add the role to the nodes that you need or to all nodes using your web interface or the folowing command:
Code Block |
---|
knife node run_list add $NODE_NAME 'role[breeze-agent]' #Where $NODE_NAME is the name of the actual node |
To add the role to all nodes, run:
Code Block |
---|
for node in `knife node list`;do knife node run_list add $node 'role[breeze-agent]';done; |
Next chef-client will apply the changes on the nodes. Please note that it may take some time.
Puppet
1. Put the Puppet module folder to the /etc/puppetlabs/code/environments/production/modules/.
2. Put Breeze Agent installer files to the /etc/puppetlabs/code/environments/production/modules/breeze_agent/files directory.
3. Attach breeze_agent class to the necessary group in the Puppet Dashboard.
4. Add the required variables breeze_package_linux and breeze_package_windows.
Ansible
1. Put Breeze Agent installer files to the 'files' directory.
2. Specify the installer file name and hosts in breeze_agent_linux.yml and breeze_agent_windows.yml
Code Block |
---|
- hosts: linux
vars:
linux_agent: linux-breeze-agent.tgz |
Installation on VM managed by vCenter
...