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:

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 <account_token> 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

---
- 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

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:

Todos

The following are work in progress new features :

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.

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 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.

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.