An open API service indexing awesome lists of open source software.

https://github.com/cisco-open/ansible-role-thousandeyes-enterprise-agent-linux

Ansible role for ThousandEyes Enterprise Agent Linux package deployment
https://github.com/cisco-open/ansible-role-thousandeyes-enterprise-agent-linux

Last synced: about 2 months ago
JSON representation

Ansible role for ThousandEyes Enterprise Agent Linux package deployment

Awesome Lists containing this project

README

        

# Ansible Role: ansible-role-thousandeyes-enterprise-agent-linux

Ansible role for Cisco ThousandEyes Enterprise Agent deployment.

## Description

Mass deployment and configuration of Linux package ThousandEyes Enterprise Agent via Ansible role.
This Ansible role is automating the manual installation method described on the [Enterprise Agent Deployment Using Linux Package Method] Knowledge Base article.
The tasks in this Ansible role are inheriting the logic from the official [shell installation script] and various [Knowledge Base] articles.

## Requirements

- Ansible 2.9
- Supported hosts OS: Ubuntu 20.04/22.04 LTS, RHEL/Oracle Linux 8, Amazon Linux 2. Although not mandatory, all OS minimal server images are preferred.

## Installation

Clone the repository into your Ansible roles folder location:

```bash

git clone https://github.com/cisco-open/ansible-role-thousandeyes-enterprise-agent-linux.git /path/to/ansible/roles

```

## Role Variables

`Before running this role, please review and set the appropriate variables. E.g. vars/main.yml`

INSTALL_LOG:

> If you save Ansible output to a log, you expose any secret data in your Ansible output, such as passwords and user names.
> By default Ansible sends output about plays, tasks, and module arguments to your screen (STDOUT) on the control node.
> If you want to capture Ansible output in a log, you have three options.
> Visit [Logging Ansible output] for more details.

|Key|Type|Description|Default|Possible values|Notes|
|--- |--- |--- |--- |--- |--- |
|ACCOUNT_TOKEN|String|Account Group for Enterprise Agent|``| 32 chars AG Token|[Where can I get the Account Group Token?]|
|CRASH_REPORTS|String|Enables or disables crash reports|`1`|`0`,`1`|[Crash Reporting]|
|INSTALL_BROWSERBOT|String|Installs Browserbot|`yes`|`yes`,`no`|[What is BrowserBot?]|
|INSTALL_NTP|String|Installs NTP service|`no`|`yes`(recommended),`no`|[Enterprise Agent Deployment post-install]|
|INSTALL_NTP_SERVER_CUSTOM1|String|Custom NTP server/pool 1|`""`|`IP`,`hostname`|Read vars/main.yml comments|
|INSTALL_NTP_SERVER_CUSTOM2|String|Custom NTP server/pool 2|`""`|`IP`,`hostname`|Read vars/main.yml comments|
|INSTALL_OS_UPDATES|String|Install operating system (security) updates|`no`|`yes`(recommended),`no`|
|PROXY_TYPE|String|Proxy settings for ThousandEyes Agent|`DIRECT`|`DIRECT`,`STATIC`,`PAC`|[Configuring a Proxy Server]|
|PROXY_LOCATION|String|HTTP proxy|`""`|`IP`,`hostname`,`PAC location`|[Configuring a Proxy Server]|
|PROXY_USER|String|Proxy username|`""`|Valid proxy credentials|[Configuring a Proxy Server]|
|PROXY_PASS|String|Proxy password|`""`|Valid proxy credentials|[Configuring a Proxy Server]|
|PROXY_BYPASS_LIST|String|Proxy bypass list|`""`|`*.example.com;192.168.1.0/24`|[Configuring a Proxy Server]|
|PROXY_AUTH_TYPE|String|Proxy authentication type|`""`|`BASIC`,`NTLM`,`KERBEROS`|[Configuring a Proxy Server]|
|KDC_USER|String|Kerberos username|`""`|Valid Kerberos credentials|
|KDC_PASS|String|Kerberos password|`""`|Valid Kerberos credentials|
|KDC_REALM|String|Kerberos realm|`""`|Kerberos realm|
|KDC_HOST|String|Kerberos Key Distribution Center (KDC) Host|`""`|
|KDC_PORT|String|Kerberos port|`88`|Other port number|
|KERBEROS_RDNS|String|Disable reverse DNS lookup in Kerberos auth|`1`|`0`,`1`|[Kerberos RDNS configuration]|
|KERBEROS_WHITELIST|String|Kerberos whitelist|`""`|IP address range or subnet
|APT_PROXY_HOSTNAME|String|APT Proxy hostname|`""`|`IP`,`hostname`|[Proxy settings for apt package manager]|
|APT_PROXY_PORT|String|APT Proxy port|`80`|Other port number|
|APT_PROXY_USERNAME|String|APT Proxy username|`""`|Valid proxy credentials|
|APT_PROXY_PASSWORD|String|APT Proxy password|`""`|Valid proxy credentials|
|YUM_PROXY_HOSTNAME|String|YUM Proxy hostname|`""`|`IP`,`hostname`|[Proxy settings for yum package manager]|
|YUM_PROXY_PORT|String|YUM Proxy port|`80`|Other port number|
|YUM_PROXY_USERNAME|String|YUM Proxy username|`""`|Valid proxy credentials|
|YUM_PROXY_PASSWORD|String|YUM Proxy password|`""`|Valid proxy credentials|
|REDHAT_REPOSITORY|String|Repository for RPM|`https://yum.thousandeyes.com`|Repository URL|
|DEBIAN_REPOSITORY|String|Repository for DEB|`https://apt.thousandeyes.com/`|Repository URL|
|SKIP_REPO_CREATION|String|Skip the repository creation|`no`|`yes`,`no`|
|RHN_REGISTER|String|Register RHEL with RedHat Network|`yes`|`yes`,`no`|[Register RHEL with RedHat Network]|
|RHN_USERNAME|String|RedHat Network username|`""`|RHN username
|RHN_PASSWORD|String|RedHat Network password|`""`|RHN password
|RHN_POOL_ID1|String|Subscribe to a specific pool by ID|`""`|RHN Pool ID
|TEAGENT_LOG|String|log path for te-agent|`/var/log`|Valid path for te-agent log files
|MEM_AGENT_BBOT|Integer|Check recommended memory with Browserbot|`2048`|Integer greater than recommended value|[Enterprise Agent hardware requirements]|
|MEM_AGENT|Integer|Check recommended memory Agent only|`1024`|Integer greater than recommended value|[Enterprise Agent hardware requirements]|
|CPU_CORE_COUNT|Integer|Check recommended CPU count|`2`|Integer greater than recommended value|[Enterprise Agent hardware requirements]|
|START_SERVICE|String|Start te-agent service|`yes`|`yes`,`no`|Delay registering the agent until next restart|

## Example Playbook

install_thousandeyes.yml
```yml
---
- hosts: allagents
remote_user: ansible
gather_facts: no
# Uncommenting this line allows each host to run until the end of the play as fast as it can
# strategy: free
pre_tasks:
- setup:
gather_subset:
- '!all'
- '!any'
- hardware
- virtual
become: true
roles:
# - common
# - rhel-system-roles.timesync
- ansible-role-thousandeyes-enterprise-agent-linux
# - other-roles
```
## Example using Ansible Vault
vars/main.yml contains sensitive information like Account Group token or credentials.

The following example will encrypt the variables file with the password in vault_password_file
```bash
ansible-vault encrypt --vault-id thousandeyes@vault_password_file vars/main.yml
ansible-playbook install_thousandeyes.yml --vault-id thousandeyes@vault_password_file
```
More details:
- [Ansible Vault]
- [Using Vault in playbooks]

### Todos
The following are work in progress new features :
- Add support for RHEL/Rocky 9
- [Add CA root certificates to system certificate store](https://docs.thousandeyes.com/product-documentation/enterprise-agents/installing-ca-certificates-on-enterprise-agents)
- [Add CA root certificates to Browserbot](https://docs.thousandeyes.com/product-documentation/enterprise-agents/installing-ca-certificates-on-enterprise-agents)

## Contributing to ansible-role-thousandeyes-enterprise-agent-linux
This project is maintained by the ThousandEyes Customer Engineering team and accepts community contributions.
If you have a bug or an idea, browse the open issues before [opening a new issue](https://github.com/cisco-open/ansible-role-thousandeyes-enterprise-agent-linux/issues).

### Write bug reports with detail, background, and sample code
Please consider to include the following in a bug report:

- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happened
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

### Any contributions you make will be under the Apache License, Version 2
By contributing, you agree that your contributions will be licensed under its Apache License, Version 2.
In short, when you submit code changes, your submissions are understood to be under the same [Apache License](LICENSE) that covers the project.
Feel free to contact the maintainers if that's a concern.

## License
Copyright (c) 2023 Cisco Systems, Inc. and its affiliates
All rights reserved.

[Enterprise Agent Deployment Using Linux Package Method]:

[shell installation script]:

[Knowledge Base]:

[Where can I get the Account Group Token?]:

[Crash Reporting]:

[What is BrowserBot?]:

[Enterprise Agent Deployment post-install]:

[Kerberos RDNS configuration]:

[Proxy settings for apt package manager]:

[Proxy settings for yum package manager]:

[Oracle Linux Addons repository]:

[Register RHEL with RedHat Network]:

[Enterprise Agent hardware requirements]:

[Configuring a Proxy Server]:

[Ansible Vault]:

[Using Vault in playbooks]:

[Logging Ansible output]: