infra-status/ansible
Anton Iakimov 5d78944b7b
boot: turn trace logs for boot-01 nodes
> Configuration for status.sharding.bootstrap
> 1 node in this fleet should preferably be set up with trace-level message logs, in order
> to facilitate future end-to-end message tracing and debugging

https://github.com/status-im/infra-shards/issues/2
2023-09-29 16:54:39 +02:00
..
files Initial commit 2023-09-08 14:11:02 +02:00
group_vars boot: turn trace logs for boot-01 nodes 2023-09-29 16:54:39 +02:00
inventory inventory: cleanup boot-02 nodes 2023-09-29 12:31:35 +02:00
lookup_plugins Initial commit 2023-09-08 14:11:02 +02:00
README.md Initial commit 2023-09-08 14:11:02 +02:00
bootstrap.yml Initial commit 2023-09-08 14:11:02 +02:00
main.yml store-db: setup hosts and connection 2023-09-29 12:26:44 +02:00
requirements.yml store-db: setup hosts and connection 2023-09-29 12:26:44 +02:00
terraform.py Initial commit 2023-09-08 14:11:02 +02:00
upgrade.yml Initial commit 2023-09-08 14:11:02 +02:00
versioncheck.py Initial commit 2023-09-08 14:11:02 +02:00

README.md

Description

Herein lie all ansible related files except for ansible.cfg at the root of the repo for easier usage without having to cd here.

Usage

Simply run the play related to the specific type of configuration you want to deploy:

 > ls -1 ansible/*.yml 
ansible/bootstrap.yml
ansible/upgrade.yml
ansible/main.yml
ansible-playbook ansible/main.yml

Bootstrap

All hosts are bootstraped right after provisioning using these roles:

If you want to re-run any bootstrap step you can do it like so:

ansible-playbook ansible/bootstrap.yml -t role::bootstrap:hostname

In this case only the hostname set of tasks will be executed due to the role::bootstrap:hostname tag.

Inventory

The inventory we use is crated by Terraform via the terraform-provider-ansible which generates the necessary data structures in the Consul Key/Value store that is later used by the terraform.py script to provide hosts and their variables to Ansible.

Some ways to view existing hosts:

ansible localhost -m debug -a 'var=groups'
ansible all -o -m debug -a 'var=ansible_host' | columns -t

Variables

Ansible variables can be provided to Ansible using the --extra-vars/-e flag. An example of such a flag is

compose_state: 'present'
compose_recreate: 'smart'
compose_restart: false

These are used in every role that starts docker containers. You can use them to change the behaviour of roles. For example to re-create all metric related containers use:

ansible-playbook ansible/main.yml -e compose_recreate=always

Secrets

Secrets are stored and provided in two ways: