# Ansible Datasaker Role The Ansible Datasaker role installs and configures the Datasaker Agent and integrations. ## Setup ### Requirements - Requires Ansible v2.6+. - Supports most Debian Linux distributions. - Supports Amazon Linux 2023 distributions. ### Installation Install the [Datasaker role] from Ansible Galaxy on your Ansible server: ```shell ansible-galaxy install dsk_bot.datasaker ``` To deploy the Datasaker Agent on hosts, add the Datasaker role and your API key to your playbook: ###### Host Agent Default Install Example ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_api_key: "" datasaker_agents: ["dsk-node-agent"] ``` ###### Docker Agent Default Install Example ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_api_key: "" datasaker_docker_agents: ["dsk-docker-node-agent","dsk-docker-log-agent"] ``` #### Base Role variables | Variable | Description | |--------------------------------------------|--------------------------------------------------| |`datasaker_api_key`|Your Datasaker API key.| |`datasaker_agents`|Set to Datasaker Host Agent.
`dsk-node-agent` `dsk-trace-agent` `dsk-log-agent` `dsk-postgres-agent` `dsk-plan-postgres-agent`
(Default) `dsk-node-agent`| |`datasaker_docker_agents`|Set to Datasaker Docker Agent.
`dsk-docker-node-agent` `dsk-docker-trace-agent` `dsk-docker-log-agent` `dsk-docker-postgres-agent`
(Default) `dsk-docker-node-agent`| #### Docker Agent Role variables | Variable | Description | |--------------------------------------------|--------------------------------------------------| |`datasaker_docker_config_path`| Override the datasaker global config path.
(Default) `~/.datasaker`| |`datasaker_docker_global_config`| Override the datasaker global config file name.
(Default) `~/.datasaker/config.yml`| |`docker_default_path`| Override the docker containers path.
(Default) `/var/lib/docker/containers/`| |`datasaker_docker_path`| Override the datasaker docker agent containers path.
(Default) `/var/datasaker`| |`container_agent_restart_policy`| Override the restart policy for a `dsk-container-agent` container
(Default) `always`| |`node_agent_restart_policy`| Override the restart policy for a `dsk-node-agent` container
(Default) `always`| |`trace_agent_restart_policy`| Override the restart policy for a `dsk-trace-agent` container
(Default) `always`| |`log_agent_restart_policy`| Override the restart policy for a `dsk-log-agent` container
(Default) `always`| |`postgres_agent_restart_policy`| Override the restart policy for a `dsk-postgres-agent` container
(Default) `always`| |`plan_postgres_agent_restart_policy`| Override the restart policy for a `dsk-plan-postgres-agent` container
(Default) `always`| |`container_agent_log_level`| Override the `dsk-container-agent` log level
(Default) `INFO`| |`node_agent_log_level`| Override the `dsk-node-agent` log level
(Default) `INFO`| |`trace_agent_log_level`| Override the `dsk-trace-agent` log level
(Default) `INFO`| |`log_agent_log_level`| Override the `dsk-log-agent` log level
(Default) `INFO`| |`postgres_agent_log_level`| Override the `dsk-postgres-agent` log level
(Default) `INFO`| |`plan_postgres_agent_log_level`| Override the `dsk-plan-postgres-agent` log level
(Default) `INFO`| #### Agents Setting Role variables | Variable | Description | |--------------------------------------------|--------------------------------------------------| |`trace_sampling_rate`| Override The `dsk-trace-agent` sampling rate applied to the collector.
- When set to 100 or higher, all data is collected.
(Default) `10`| |`log_collects`| An array of log collection configurations. Each item in the array includes the following. | |`log_collects[*].paths`| An array of paths for log collection.
(Default) [`host-agent`]=`/var/log/*.log`, [`docker-agent`]=`/var/log/sample/*/*.log` | |`log_collects[*].exclude_paths`| An array of paths to be excluded from the log collection. If the array is empty, no paths will be excluded.
(Default) `None` | |`log_collects[*].keywords`| An array of keywords for filtering the logs. If the array is empty, no keyword filtering will be applied.
(Default) `None` | |`log_collects[*].tag`| The tag for the log collection item.
(Default) `Default` | |`log_collects[*].service.name`| The name of the service.
(Default) `default` | |`log_collects[*].service.category`| The category of the service.
(Default) `etc` | |`log_collects[*].service.type`| The type of the service.
(Default) `etc` | |`log_collects[*].service.address`| The address of the service.
This field is optional and is used only for certain services that require an address. | |`postgres_user_name`| Enter the Postgres user ID.
(Default) `None` | |`postgres_user_password`| Enter the Postgres user password.
(Default) `None` | |`postgres_database_address`| Enter the Postgres address.
(Default) `None` | |`postgres_database_port`| Enter the Postgres port.
(Default) `None` | |`plan_postgres_user_name`| Enter the Plan Postgres user ID.
(Default) `None` | |`plan_postgres_user_password`| Enter the Plan Postgres user password.
(Default) `None` | |`plan_postgres_database_address`| Enter the Plan Postgres address.
(Default) `None` | |`plan_postgres_database_port`| Enter the Plan Postgres port.
(Default) `None` | |`plan_postgres_database_name`| Enter the Plan Postgres database.
(Default) `None` | |`plan_postgres_scrape_interval`| Override the Plan Postgres scrape interval
(Default) `30s` | |`plan_postgres_scrape_timeout`| Override the Plan Postgres scrape timeout
(Default) `5s` | |`plan_postgres_slow_query_standard`| Override the Plan Postgres slow query standard
(Default) `5s` | |`plan_postgres_executor_number`| Override the Plan Postgres executor number
(Default) `10` | |`plan_postgres_sender_number`| Override the Plan Postgres sender number
(Default) `10` | |`plan_postgres_activity_query_buffer`| Override the Plan Postgres activity query buffer
(Default) `50` | |`plan_postgres_plan_sender_buffer`| Override the Plan Postgres plan sender buffer
(Default) `50` | ###### Agent Variables Example ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_api_key: "" datasaker_docker_agents: ["dsk-docker-node-agent","dsk-docker-trace-agent","dsk-docker-log-agent","dsk-docker-postgres-agent"] postgres_user_name: sample postgres_user_password: 1q2w3e4r postgres_database_address: 0.0.0.0 postgres_database_port: 5432 plan_postgres_user_name: sample plan_postgres_user_password: 1q2w3e4r plan_postgres_database_address: 0.0.0.0 plan_postgres_database_name: sample plan_postgres_database_port: 5432 log_collects: - paths: - "/var/log/sample/*/*.log" exclude_paths: [] keywords: [] tag: "Default" service: name: "default" category: "etc" type: "etc" - paths: - "/var/log/sample/b4d5ac015a5a*/*.log" service: name: "docker-test" category: "database" type: "postgres" address: "0.0.0.0:5432" ``` ## Uninstallation However for more control over the uninstall parameters, the following code can be used. In this example: ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_agents: [""] uninstall: True datasaker_clean: True ```