Ansible Role for Cloud Ops

This Ansible role installs the Cloud Ops agents.

Install the Role

  • [Recommended] To use Ansible Galaxy to handle dependencies, use this command to install:

    ansible-galaxy install googlecloudplatform.google_cloud_ops_agents

  • To use GitHub submodules to handle dependencies, install this directory in your roles path (usually in a roles directory alongside your playbook) under

    the name googlecloudplatform.google_cloud_ops_agents:

    git clone <this-git-repo> roles/googlecloudplatform.google_cloud_ops_agents

There is a detailed tutorial as well.

Requirements

Permissions to the Google Cloud API. If you are running an old Compute Engine instance or Compute Engine instances created without the default credentials, then you must complete the following steps https://cloud.google.com/monitoring/agent/authorization#before_you_begin.

Role Variables

The agent_type is a required variable used to specify which agent is being configured. The available options are monitoring, logging and ops-agent.

The package_state variable can be used to specify the desired state of the agent. The allowed values are present (default) and absent.

The version variable can be used to specify which version of the agent to install. The allowed values are latest (default), MAJOR_VERSION.*.* and MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION, which are described in detail below.

version=latest This setting makes it easier to keep the agent version up to date, however it does come with a potential risk. When a new major version is released, the policy may install the latest version of the agent from the new major release, which may introduce breaking changes. For production environments, consider using the version=MAJOR_VERSION.*.* setting below for safer agent deployments.

version=MAJOR_VERSION.*.* When a new major release is out, this setting ensures that only the latest version from the specified major version is installed, which avoids accidentally introducing breaking changes. This is recommended for production environments to ensure safer agent deployments.

version=MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION This setting is not recommended since it prevents upgrades of new versions of the agent that include bug fixes and other improvements.

The main_config_file variable can be used to supply an absolute or relative path to a custom configuration file. This file will overwrite the configuration file on the target VM.

For more information, please see Configuring the Monitoring Agent, Configuring the Logging Agent or Configuring the Ops Agent.

By default, the agent only monitors and logs system resources like cpu, memory, disk etc. Third party application monitoring and logging can be configured by supplying a path to a directory containing plugin configuration files using the variable additional_config_dir. All .conf files under this directory will be deployed to the agent's plugin directory on the target VM. The main config file should have a line that includes this directory. Please note that this variable can only be specified when configuring the monitoring or logging agents.

For more information, please see Monitoring third-party applications.

Example Playbooks

# Installing the Monitoring and Logging agents
- hosts: all
  become: true
  roles:
    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: monitoring

    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: logging
# Installing the Monitoring and Logging agents with custom configurations
- hosts: all
  become: true
  roles:
    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: monitoring
        version: latest
        main_config_file: monitoring_agent.conf
        additional_config_dir: monitoring_agent_dir/

    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: logging
        version: 1.*.*
        main_config_file: logging_agent.conf
        additional_config_dir: logging_agent_dir/
# Installing the Ops-Agent
- hosts: all
  become: true
  roles:
    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: ops-agent
# Installing the Ops-Agent with custom configuration
- hosts: all
  become: true
  roles:
    - role: googlecloudplatform.google_cloud_ops_agents
      vars:
        agent_type: ops-agent
        version: 1.0.1
        main_config_file: ops_agent.yaml

Compatibility

The matrix below lists the versions of this Ansible role and the agent versions it supports.

Ansible Role Version Compatible Ops Agent Version(s) Compatible Logging Agent Version(s) Compatible Monitoring Agent Version(s)
1.x.x 2.x.x 1.x.x 6.x.x

Bug report and feature request

Please file a case via https://cloud.google.com/support-hub to get official support that follows SLOs.

License

Copyright 2020 Google Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License.  You may obtain a copy of the
License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.  See the License for the
specific language governing permissions and limitations under the License.