diff --git a/README.md b/README.md index 4dc73fe..7551fce 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ This role has been tested on: ## Usage -Minimal required variables that has to be set: +For a very simple minimal working example, see example_playbooks directory + +Minimal required variables that have to be set: ```yaml database_name: "" diff --git a/defaults/main.yml b/defaults/main.yml index 58aa4bc..2ae94ba 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -22,10 +22,6 @@ postgres_arguments: - -c - max_connections=256 - -c - - shared_buffers=47616MB - - -c - - effective_cache_size=142848MB - - -c - maintenance_work_mem=2GB - -c - checkpoint_completion_target=0.9 diff --git a/example_playbooks/mainnet_with_snapshots_recovery/README.md b/example_playbooks/mainnet_with_snapshots_recovery/README.md new file mode 100644 index 0000000..50acff3 --- /dev/null +++ b/example_playbooks/mainnet_with_snapshots_recovery/README.md @@ -0,0 +1,23 @@ +# Mainnet Snapshots Recovery playbook + +This directory is simple example how to set up EN using this role. It comes with snapshots recovery enabled by default.\ +**Note that for simplicity it's using postgres database +with a very unsecure password and the EN is just started on the same machine** + +To run this playbook, first install dependencies + +```shell + ansible-galaxy install -r requirements.yml + ``` + +and then you can run the playbook using + +```shell + ansible-playbook playbook.yml -i hosts.ini -K + ``` + +To see logs you can use + +```shell + docker logs en-external_node-1 + ``` diff --git a/example_playbooks/mainnet_with_snapshots_recovery/hosts.ini b/example_playbooks/mainnet_with_snapshots_recovery/hosts.ini new file mode 100644 index 0000000..13cfabe --- /dev/null +++ b/example_playbooks/mainnet_with_snapshots_recovery/hosts.ini @@ -0,0 +1,2 @@ +[local] +localhost ansible_connection=local diff --git a/example_playbooks/mainnet_with_snapshots_recovery/playbook.yml b/example_playbooks/mainnet_with_snapshots_recovery/playbook.yml new file mode 100644 index 0000000..ae36758 --- /dev/null +++ b/example_playbooks/mainnet_with_snapshots_recovery/playbook.yml @@ -0,0 +1,15 @@ +- hosts: all + become: true + vars: + database_name: "zksync_ext_node_mainnet" + database_username: "postgres" + database_password: "notsecurepassword" + eth_l1_url: "https://ethereum-rpc.publicnode.com" + main_node_url: "https://zksync2-mainnet.zksync.io" + l1_chain_id: "1" + l2_chain_id: "324" + enable_snapshots_recovery: true + snapshots_bucket_base_url: "zksync-era-mainnet-external-node-snapshots" + + roles: + - external_node diff --git a/example_playbooks/mainnet_with_snapshots_recovery/requirements.yml b/example_playbooks/mainnet_with_snapshots_recovery/requirements.yml new file mode 100644 index 0000000..71da07e --- /dev/null +++ b/example_playbooks/mainnet_with_snapshots_recovery/requirements.yml @@ -0,0 +1,13 @@ +--- +roles: + - name: geerlingguy.docker + src: https://github.com/geerlingguy/ansible-role-docker + version: "7.1.0" + + - name: external_node + src: https://github.com/matter-labs/ansible-en-role + version: "v3.0.0" + +collections: + - name: community.general + version: 8.4.0 diff --git a/meta/main.yml b/meta/main.yml index f63c924..f940170 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -2,7 +2,7 @@ dependencies: - src: geerlingguy.docker version: "7.1.0" - when: docker_install + when: docker_install_compose galaxy_info: role_name: external_node diff --git a/templates/docker-compose.yaml.j2 b/templates/docker-compose.yaml.j2 index 1aef1de..cdcb46b 100644 --- a/templates/docker-compose.yaml.j2 +++ b/templates/docker-compose.yaml.j2 @@ -47,7 +47,11 @@ services: - {{ argument }} {% endfor %} external_node: +{% if not external_node_raw_docker_tag %} image: "matterlabs/external-node:v{{ external_node_version }}" +{% else %} + image: "matterlabs/external-node:{{ external_node_raw_docker_tag }}" +{% endif %} restart: unless-stopped depends_on: postgres: @@ -103,3 +107,7 @@ services: env_file: - "external_node.env" - "postgres.env" +{% if enable_snapshots_recovery %} + command: + - --enable-snapshots-recovery +{% endif %}