157 строки
4.4 KiB
Markdown
157 строки
4.4 KiB
Markdown
Azure DevOps Build and Release Agent Cookbook for macOS
|
|
=======================================================
|
|
|
|
[![Build status](https://dev.azure.com/office/APEX/_apis/build/status/Apple%20Lab/cookbooks/azure_pipelines_agent_macos)](https://dev.azure.com/office/APEX/_build/latest?definitionId=2373)
|
|
|
|
[Visual Studio Team Services is now Azure DevOps Services](https://docs.microsoft.com/en-us/azure/devops/user-guide/what-happened-vsts)
|
|
We're working on the best way to rename the cookbook and recipes while maintaining backwards compatibility.
|
|
|
|
Recipes
|
|
-------
|
|
|
|
### Bootstrap
|
|
|
|
Usage: `azure_pipelines_agent_macos::bootstrap`
|
|
|
|
Add the node to the agent pool or deployment group.
|
|
|
|
### Teardown
|
|
|
|
Usage: `azure_pipelines_agent_macos::teardown`
|
|
|
|
Remove an existing agent from the build pool or deployment group.
|
|
|
|
Attributes
|
|
----------
|
|
|
|
### Agent Name
|
|
|
|
The name of the agent.
|
|
|
|
**Default value:** `node['hostname']`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['agent_name']
|
|
```
|
|
|
|
### Agent Version
|
|
|
|
The version of the agent to install.
|
|
|
|
**Default value:** `'2.150.3'`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['version']
|
|
```
|
|
|
|
### Agent Pool
|
|
|
|
The name of the agent pool you wish to add the agent to.
|
|
|
|
**Default value:** `American Hanko's Agents`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['agent_pool']
|
|
```
|
|
|
|
### Organization Name
|
|
|
|
The name of your Azure DevOps organization. (e.g. 'americanhanko' in `https://dev.azure.com/americanhanko`)
|
|
|
|
**Default value:** `americanhanko`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['account']
|
|
```
|
|
|
|
### Admin User
|
|
|
|
The username of an adminstrator on the macOS system.
|
|
|
|
**Default value:** `'vagrant'`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['admin_user']
|
|
```
|
|
|
|
### Agent Home Directory
|
|
|
|
The location that contains all builds, source, release, etc.
|
|
|
|
**Default value:** `'/Users/#{node['azure_pipelines_agent']['admin_user']}/azure-pipelines-agent'`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['agent_home']
|
|
```
|
|
|
|
### Additional Environment Variables
|
|
|
|
An optional hash may be set to pass environment variables to the agent. The agent
|
|
will then be configured with these environment variables which it will then
|
|
report back to the servers.
|
|
|
|
**Default value:** `{}`
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['additional_environment']
|
|
```
|
|
|
|
Deployment Group
|
|
----------------
|
|
|
|
This cookbook supports adding agents to Azure DevOps deployment groups. To use this feature, simply
|
|
set the `default['azure_pipelines_agent']['deployment_group']` attribute. In addition, make sure you have
|
|
the appropriate values set for the following attributes shown below. By default, we assume that
|
|
if the `default['azure_pipelines_agent']['deployment_group']` attribute is `nil`, we are bootstrapping
|
|
a build agent and _not_ a deployment agent. This means if you set this attribute, it will
|
|
override the default functionality. You may optionally specifiy deployment group tags using
|
|
`default['azure_pipelines_agent']['deployment_group_tags']`.
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['deployment_group'] = nil
|
|
default['azure_pipelines_agent']['project'] = nil
|
|
default['azure_pipelines_agent']['work'] = nil
|
|
default['azure_pipelines_agent']['deployment_group_tags'] = nil
|
|
```
|
|
|
|
Authentication
|
|
--------------
|
|
|
|
This cookbook uses a [personal access token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate)
|
|
to authenticate to your organization on the Azure DevOps servers. The cookbook allows access to the token via either an attribute, within a data bag or using a chef vault item.
|
|
|
|
### Plaintext Attribute
|
|
|
|
Example:
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['pat'] = '0fbdebc988934add98179ddaae019a01711'
|
|
```
|
|
|
|
### Data Bag or Chef Vault Item
|
|
|
|
Name your vault or bag and corresponding item whatever you like and
|
|
make sure to set the corresponding attributes to reference it
|
|
accordingly:
|
|
|
|
Example:
|
|
|
|
```ruby
|
|
default['azure_pipelines_agent']['data_bag'] = 'tea_bag'
|
|
default['azure_pipelines_agent']['data_bag_item'] = 'green_tea'
|
|
```
|
|
|
|
However, it **must** contain a `personal_access_token` key with
|
|
the token itself as the value. The token must have rights to read and modify
|
|
build agents. The permissions are selected at the time of the PAT creation, which
|
|
you can read more about [here](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate).
|
|
|
|
Example:
|
|
|
|
```json
|
|
{
|
|
"id": "azure_pipelines_build_agent",
|
|
"personal_access_token": "iu8tfaxxrhce7yeu434yo9zfjtxif3jygzk24wegi855er2moobs"
|
|
}
|
|
```
|