-
Notifications
You must be signed in to change notification settings - Fork 16
Description
So far I havn't been able to reproduce the genesis time issue running on almost the smallest machine on GCP (4 x e2-medium (2 vCPUs, 4 GB Memory)). My ansible runs complete in about 1 minute across multiple tries, but I suspect it might be because my instances are close to me with just 30ms ping (TH<>SG). My pings and data transfers to EU/US would be much slower. Full logs below.
But from trying lean-quickstart, I observed a few things that might be worth updating to make ansible deployments more predictable:
-
The
genesis_offsetin generate-genesis.yml is never set, and so it always use thedefault(180). This is despite settingGENESIS_TIME_OFFSET=360in generate-genesis.shgenesis_offsetin ansible playbook should be calculated fromGENESIS_TIME_OFFSET -
Client docker images are being pulled twice. As an explicit command at https://github.com/blockblaz/lean-quickstart/blob/main/ansible/roles/zeam/tasks/main.yml#L87 and with
--pull=alwayse.g. https://github.com/blockblaz/lean-quickstart/blob/main/ansible/roles/zeam/tasks/main.yml#L102. I think one can be removed and applies to all client configs. This might be the biggest time reduction we can do.- If we can make the docker pull async that's even better. Docker image pull doesn't depend on any other configurations and from my runs these pull times are the most unpredictable.
-
Clients are being setup sequentially. It's not a problem now but it'll likely be once we try scale up to 10s or 100s of validators and it'll definitely be the genesis time issue again. I think ansible can parallelize with by flipping a param but I'm not sure which. I think it should parallelize the time consuming tasks like these ones I extracted from tasks recap.
- These are definitely ran in sequential looking at the logs, and they are also the most time consuming. We should parallelize them:
- [client] : Pull [client] docker image
- [client] : Start [client] container
- I think these have some parallelization by default but it has some limits. Not need to change for 4 validators, but flagging this for a look when we scale up to more validators. Actually the control instance will become a bottleneck once we scale up so we'll need to pull these files from somewhere.
- Copy hash-sig-keys directory to remote host
- Copy genesis config files to remote host
- Copy node private key files to remote host
- These are definitely ran in sequential looking at the logs, and they are also the most time consuming. We should parallelize them:
-
I also noticed that ream has a different IP range from the rest. From quick ip geolocation looks like ream's instance is in Finland while the rest are in Germany. Can we get them all to similar locations? Or else we spread them all across for consistency.
Full ansible logs:
➜ lean-quickstart git:(main) ✗ NETWORK_DIR=local-devnet ./spin-node.sh --node all --generateGenesis --deploymentMode ansible
setting up network from /Users/unnawut/Development/repo/lean-quickstart/local-devnet
no external validator config provided, assuming genesis bootnode
configDir = /Users/unnawut/Development/repo/lean-quickstart/local-devnet/genesis
dataDir = /Users/unnawut/Development/repo/lean-quickstart/local-devnet/data
spin_nodes(s) =
generateGenesis = true
cleanData = true
popupTerminal =
dockerTag = latest
enableMetrics =
Using deployment mode from command line: ansible
Using Ansible deployment: configDir=/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis, validator config=/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/validator-config.yaml
🔧 Running genesis generator...
================================================
🔍 Checking dependencies...
✅ yq found: /opt/homebrew/bin/yq
✅ docker found: /usr/local/bin/docker
✅ Using hash-sig-cli Docker image: blockblaz/hash-sig-cli:devnet1
📂 Validating input files...
✅ Genesis directory: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis
✅ validator-config.yaml found
🔐 Step 1: Generating hash-sig validator keys...
SKIP_KEY_GEN=true
KEYS_EXIST=true
⏭️ Skipping key generation - keys already present
Key directory: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys
🔧 Verifying validator-keys-manifest.yaml...
✅ Manifest verified - contains hex pubkeys
Detected pubkey field: pubkey_hex
🔧 Step 2: Generating config.yaml...
Deployment mode: ansible
Genesis time offset: 360s
Genesis time: 1766129946
Individual validator counts:
- zeam_0: 1
- ream_0: 1
- qlean_0: 1
- lantern_0: 1
Total validator count: 4
✅ Generated config.yaml
🔧 Step 3: Running PK's eth-beacon-genesis tool...
Docker image: ethpandaops/eth-beacon-genesis:pk910-leanchain
Command: leanchain
Executing docker command...
Pulling latest image: ethpandaops/eth-beacon-genesis:pk910-leanchain
pk910-leanchain: Pulling from ethpandaops/eth-beacon-genesis
Digest: sha256:dff8abf66a380ed1f3d80ec5183e997f68b83df95cdfaabce188494da355deee
Status: Image is up to date for ethpandaops/eth-beacon-genesis:pk910-leanchain
docker.io/ethpandaops/eth-beacon-genesis:pk910-leanchain
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview ethpandaops/eth-beacon-genesis:pk910-leanchain
time="2025-12-19T07:33:09Z" level=info msg="eth-beacon-genesis version: git-d4f7211"
time="2025-12-19T07:33:09Z" level=info msg="loaded leanchain config."
time="2025-12-19T07:33:09Z" level=info msg="loaded 4 validators."
time="2025-12-19T07:33:09Z" level=info msg="wrote nodes list to: /data/genesis/nodes.yaml"
time="2025-12-19T07:33:09Z" level=info msg="wrote validators list to: /data/genesis/validators.yaml"
time="2025-12-19T07:33:09Z" level=info msg="genesis version: phase0"
time="2025-12-19T07:33:09Z" level=info msg="successfully built genesis state."
time="2025-12-19T07:33:09Z" level=info msg="serialized genesis state to SSZ file: /data/genesis/genesis.ssz"
serialized genesis state to JSON file: /data/genesis/genesis.json
time="2025-12-19T07:33:09Z" level=info msg="wrote updated config to: /data/genesis/config.yaml"
✅ PK's tool completed successfully
✅ Generated: config.yaml (updated)
✅ Generated: validators.yaml
✅ Generated: nodes.yaml
✅ Generated: genesis.json
✅ Generated: genesis.ssz
🔧 Adding genesis_validators to config.yaml...
Reading pubkeys from: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator-keys-manifest.yaml
Using pubkey field: pubkey_hex
Validator 0 (zeam_0): count=1, pubkey=0x87b21618014f2c7749...
Validator 1 (ream_0): count=1, pubkey=0x177aa8206acd3d4d2b...
Validator 2 (qlean_0): count=1, pubkey=0xe418c36236a32c0391...
Validator 3 (lantern_0): count=1, pubkey=0x7b4ebf22fdb2606516...
✅ Added GENESIS_VALIDATORS to config.yaml
Validators added: 4
🔧 Generating annotated_validators.yaml...
✅ Generated annotated_validators.yaml with pubkey and privkey metadata
🔑 Step 4: Generating private key files...
Nodes: zeam_0 ream_0 qlean_0 lantern_0
✅ Generated: zeam_0.key
✅ Generated: ream_0.key
✅ Generated: qlean_0.key
✅ Generated: lantern_0.key
✓ Step 5: Validating generated files...
✅ config.yaml exists
✅ validators.yaml exists
✅ nodes.yaml exists
✅ genesis.json exists
✅ genesis.ssz exists
✅ Genesis generation complete!
📄 Generated files:
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/config.yaml (updated)
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/validators.yaml
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/nodes.yaml
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/genesis.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/genesis.ssz
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/zeam_0.key
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/ream_0.key
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/qlean_0.key
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/lantern_0.key
🔐 Hash-Sig Validator Keys:
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_0_pk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_0_sk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_1_pk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_1_sk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_2_pk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_2_sk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_3_pk.json
/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_3_sk.json
🎯 Next steps:
Run your nodes with: NETWORK_DIR=local-devnet ./spin-node.sh --node all --generateGenesis
ℹ️ Using PK's eth-beacon-genesis docker image:
Image: ethpandaops/eth-beacon-genesis:pk910-leanchain
PR: https://github.com/ethpandaops/eth-beacon-genesis/pull/36
ℹ️ Hash-sig keys generated with:
Docker Image: blockblaz/hash-sig-cli:devnet1
Scheme: SIGTopLevelTargetSumLifetime32Dim64Base8
Active Epochs: 2^18
Total Lifetime: 2^32 (4,294,967,296)
================================================
Detected nodes: zeam_0 ream_0 qlean_0 lantern_0
Validating Ansible prerequisites...
[WARNING]: Collection at '/opt/homebrew/Cellar/ansible/13.1.0/libexec/lib/python3.14/site-packages/ansible/_internal/ansible_collections/ansible/_protomatter' does not have a MANIFEST.json file, nor has it galaxy.yml: cannot detect version.
✅ Ansible prerequisites validated
Deployment mode: ansible - routing to Ansible deployment
SSH user for remote connections: unnawut
Running Ansible playbook for deploying nodes...
Command: ansible-playbook -i /Users/unnawut/Development/repo/lean-quickstart/ansible/inventory/hosts.yml /Users/unnawut/Development/repo/lean-quickstart/ansible/playbooks/site.yml -e "network_dir=/Users/unnawut/Development/repo/lean-quickstart/ansible-devnet node_names=all clean_data=true deployment_mode=docker"
PLAY [Generate Genesis Files Locally] *************************************************************************************************************************************
Friday 19 December 2025 14:33:11 +0700 (0:00:00.009) 0:00:00.009 *******
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:12 +0700 (0:00:00.691) 0:00:00.700 *******
Friday 19 December 2025 14:33:12 +0700 (0:00:00.028) 0:00:00.728 *******
TASK [Display genesis configuration] **************************************************************************************************************************************
ok: [localhost] => {
"msg": "📦 Genesis Generation Configuration\n=====================================\nGenesis directory: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis\nGenesis time offset: 180 seconds\n"
}
Friday 19 December 2025 14:33:12 +0700 (0:00:00.024) 0:00:00.752 *******
TASK [Get absolute path to project root] **********************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:12 +0700 (0:00:00.350) 0:00:01.103 *******
TASK [Set project root] ***************************************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:12 +0700 (0:00:00.021) 0:00:01.125 *******
TASK [Run generate-genesis.sh script] *************************************************************************************************************************************
changed: [localhost]
Friday 19 December 2025 14:33:16 +0700 (0:00:03.613) 0:00:04.739 *******
TASK [Display genesis generation output] **********************************************************************************************************************************
ok: [localhost] => {
"msg": " /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/nodes.yaml\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/genesis.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/genesis.ssz\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/zeam_0.key\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/ream_0.key\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/qlean_0.key\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/lantern_0.key\n\n🔐 Hash-Sig Validator Keys:\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_0_pk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_0_sk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_1_pk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_1_sk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_2_pk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_2_sk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_3_pk.json\n /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/hash-sig-keys/validator_3_sk.json\n\n🎯 Next steps:\n Run your nodes with: NETWORK_DIR=local-devnet ./spin-node.sh --node all --generateGenesis\n\nℹ️ Using PK's eth-beacon-genesis docker image:\n Image: ethpandaops/eth-beacon-genesis:pk910-leanchain\n PR: https://github.com/ethpandaops/eth-beacon-genesis/pull/36\n\nℹ️ Hash-sig keys generated with:\n Docker Image: blockblaz/hash-sig-cli:devnet1\n Scheme: SIGTopLevelTargetSumLifetime32Dim64Base8\n Active Epochs: 2^18\n Total Lifetime: 2^32 (4,294,967,296)"
}
Friday 19 December 2025 14:33:16 +0700 (0:00:00.025) 0:00:04.765 *******
TASK [Verify config.yaml has GENESIS_VALIDATORS] **************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:16 +0700 (0:00:00.293) 0:00:05.059 *******
TASK [Extract node names from validator-config.yaml] **********************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:16 +0700 (0:00:00.302) 0:00:05.361 *******
TASK [Set node names list] ************************************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:16 +0700 (0:00:00.023) 0:00:05.384 *******
TASK [Verify all key files were generated] ********************************************************************************************************************************
ok: [localhost] => (item=zeam_0)
ok: [localhost] => (item=ream_0)
ok: [localhost] => (item=qlean_0)
ok: [localhost] => (item=lantern_0)
Friday 19 December 2025 14:33:18 +0700 (0:00:01.186) 0:00:06.571 *******
TASK [Display success summary] ********************************************************************************************************************************************
ok: [localhost] => {
"msg": "✅ Genesis generation complete!\n\nGenerated files in /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis:\n - config.yaml (with GENESIS_VALIDATORS)\n - validators.yaml\n - nodes.yaml\n - genesis.json\n - genesis.ssz\n - annotated_validators.yaml\n - zeam_0.key\n - ream_0.key\n - qlean_0.key\n - lantern_0.key\n"
}
PLAY [Copy Genesis Files to Remote Hosts] *********************************************************************************************************************************
Friday 19 December 2025 14:33:18 +0700 (0:00:00.023) 0:00:06.595 *******
TASK [Gathering Facts] ****************************************************************************************************************************************************
[WARNING]: Host 'ream_0' is using the discovered Python interpreter at '/usr/bin/python3.11', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.
ok: [ream_0]
[WARNING]: Host 'qlean_0' is using the discovered Python interpreter at '/usr/bin/python3.11', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.
ok: [qlean_0]
[WARNING]: Host 'zeam_0' is using the discovered Python interpreter at '/usr/bin/python3.11', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.
ok: [zeam_0]
[WARNING]: Host 'lantern_0' is using the discovered Python interpreter at '/usr/bin/python3.11', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.
ok: [lantern_0]
Friday 19 December 2025 14:33:19 +0700 (0:00:01.674) 0:00:08.269 *******
Friday 19 December 2025 14:33:19 +0700 (0:00:00.017) 0:00:08.287 *******
TASK [Validate local genesis directory exists] ****************************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:20 +0700 (0:00:00.314) 0:00:08.601 *******
Friday 19 December 2025 14:33:20 +0700 (0:00:00.016) 0:00:08.617 *******
TASK [Check required genesis files exist locally] *************************************************************************************************************************
ok: [zeam_0 -> localhost] => (item=config.yaml)
ok: [zeam_0 -> localhost] => (item=validators.yaml)
ok: [zeam_0 -> localhost] => (item=annotated_validators.yaml)
ok: [zeam_0 -> localhost] => (item=nodes.yaml)
ok: [zeam_0 -> localhost] => (item=genesis.json)
ok: [zeam_0 -> localhost] => (item=genesis.ssz)
ok: [zeam_0 -> localhost] => (item=validator-config.yaml)
Friday 19 December 2025 14:33:22 +0700 (0:00:02.005) 0:00:10.623 *******
Friday 19 December 2025 14:33:22 +0700 (0:00:00.037) 0:00:10.660 *******
TASK [Check if hash-sig-keys directory exists locally] ********************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:22 +0700 (0:00:00.288) 0:00:10.949 *******
TASK [Extract all node names from validator-config.yaml] ******************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:22 +0700 (0:00:00.300) 0:00:11.250 *******
TASK [Set all node names list] ********************************************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:22 +0700 (0:00:00.020) 0:00:11.270 *******
TASK [Check each node key file exists locally] ****************************************************************************************************************************
ok: [zeam_0 -> localhost] => (item=zeam_0)
ok: [zeam_0 -> localhost] => (item=ream_0)
ok: [zeam_0 -> localhost] => (item=qlean_0)
ok: [zeam_0 -> localhost] => (item=lantern_0)
Friday 19 December 2025 14:33:23 +0700 (0:00:01.188) 0:00:12.459 *******
TASK [Identify missing key files] *****************************************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:23 +0700 (0:00:00.033) 0:00:12.493 *******
Friday 19 December 2025 14:33:23 +0700 (0:00:00.023) 0:00:12.516 *******
TASK [Confirm all key files are present] **********************************************************************************************************************************
ok: [zeam_0 -> localhost] => {
"msg": "✅ All 4 key file(s) are present and ready to copy: zeam_0, ream_0, qlean_0, lantern_0"
}
Friday 19 December 2025 14:33:23 +0700 (0:00:00.026) 0:00:12.542 *******
TASK [Create remote genesis directory] ************************************************************************************************************************************
ok: [lantern_0]
ok: [zeam_0]
ok: [qlean_0]
ok: [ream_0]
Friday 19 December 2025 14:33:24 +0700 (0:00:00.428) 0:00:12.971 *******
TASK [Copy genesis config files to remote host] ***************************************************************************************************************************
changed: [qlean_0] => (item=config.yaml)
changed: [zeam_0] => (item=config.yaml)
changed: [ream_0] => (item=config.yaml)
changed: [lantern_0] => (item=config.yaml)
ok: [ream_0] => (item=validators.yaml)
ok: [qlean_0] => (item=validators.yaml)
ok: [zeam_0] => (item=validators.yaml)
ok: [lantern_0] => (item=validators.yaml)
ok: [ream_0] => (item=annotated_validators.yaml)
ok: [zeam_0] => (item=annotated_validators.yaml)
ok: [qlean_0] => (item=annotated_validators.yaml)
ok: [lantern_0] => (item=annotated_validators.yaml)
ok: [ream_0] => (item=nodes.yaml)
ok: [zeam_0] => (item=nodes.yaml)
ok: [qlean_0] => (item=nodes.yaml)
ok: [lantern_0] => (item=nodes.yaml)
changed: [ream_0] => (item=genesis.json)
changed: [zeam_0] => (item=genesis.json)
changed: [qlean_0] => (item=genesis.json)
changed: [lantern_0] => (item=genesis.json)
changed: [ream_0] => (item=genesis.ssz)
changed: [zeam_0] => (item=genesis.ssz)
changed: [lantern_0] => (item=genesis.ssz)
changed: [qlean_0] => (item=genesis.ssz)
ok: [ream_0] => (item=validator-config.yaml)
ok: [zeam_0] => (item=validator-config.yaml)
ok: [qlean_0] => (item=validator-config.yaml)
ok: [lantern_0] => (item=validator-config.yaml)
Friday 19 December 2025 14:33:31 +0700 (0:00:07.528) 0:00:20.500 *******
TASK [Copy node private key files to remote host] *************************************************************************************************************************
ok: [zeam_0] => (item=zeam_0.key)
ok: [ream_0] => (item=zeam_0.key)
ok: [qlean_0] => (item=zeam_0.key)
ok: [lantern_0] => (item=zeam_0.key)
ok: [ream_0] => (item=ream_0.key)
ok: [zeam_0] => (item=ream_0.key)
ok: [lantern_0] => (item=ream_0.key)
ok: [qlean_0] => (item=ream_0.key)
ok: [qlean_0] => (item=qlean_0.key)
ok: [zeam_0] => (item=qlean_0.key)
ok: [ream_0] => (item=qlean_0.key)
ok: [lantern_0] => (item=qlean_0.key)
ok: [ream_0] => (item=lantern_0.key)
ok: [zeam_0] => (item=lantern_0.key)
ok: [lantern_0] => (item=lantern_0.key)
ok: [qlean_0] => (item=lantern_0.key)
Friday 19 December 2025 14:33:35 +0700 (0:00:03.685) 0:00:24.185 *******
TASK [Create hash-sig-keys directory on remote] ***************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:36 +0700 (0:00:00.396) 0:00:24.581 *******
TASK [Copy hash-sig-keys directory to remote host] ************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [lantern_0]
ok: [qlean_0]
Friday 19 December 2025 14:33:47 +0700 (0:00:11.852) 0:00:36.434 *******
TASK [List files on remote genesis directory] *****************************************************************************************************************************
ok: [ream_0]
ok: [lantern_0]
ok: [qlean_0]
ok: [zeam_0]
Friday 19 December 2025 14:33:48 +0700 (0:00:00.467) 0:00:36.901 *******
TASK [Display copied files summary] ***************************************************************************************************************************************
ok: [zeam_0] => {
"msg": "✅ Genesis directory copied successfully!\n\nSource: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/\nDestination: /home/unnawut/lean-quickstart/genesis/\nRemote host: zeam_0\n\nFiles copied: 28\n - validator-config.yaml\n - nodes.yaml\n - qlean_0.key\n - validators.yaml\n - genesis.json\n - ream_0.key\n - genesis.ssz\n - annotated_validators.yaml\n - lantern_0.key\n - config.yaml\n - zeam_0.key\n - hash-sig-keys/validator_1_pk.ssz\n - hash-sig-keys/validator_0_pk.ssz\n - hash-sig-keys/validator_1_pk.json\n - hash-sig-keys/validator_3_sk.json\n ... and 13 more files\n"
}
ok: [ream_0] => {
"msg": "✅ Genesis directory copied successfully!\n\nSource: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/\nDestination: /home/unnawut/lean-quickstart/genesis/\nRemote host: ream_0\n\nFiles copied: 28\n - validator-config.yaml\n - nodes.yaml\n - qlean_0.key\n - validators.yaml\n - genesis.json\n - ream_0.key\n - genesis.ssz\n - annotated_validators.yaml\n - lantern_0.key\n - config.yaml\n - zeam_0.key\n - hash-sig-keys/validator_1_pk.ssz\n - hash-sig-keys/validator_0_pk.ssz\n - hash-sig-keys/validator_1_pk.json\n - hash-sig-keys/validator_3_sk.json\n ... and 13 more files\n"
}
ok: [qlean_0] => {
"msg": "✅ Genesis directory copied successfully!\n\nSource: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/\nDestination: /home/unnawut/lean-quickstart/genesis/\nRemote host: qlean_0\n\nFiles copied: 28\n - validator-config.yaml\n - nodes.yaml\n - qlean_0.key\n - validators.yaml\n - genesis.json\n - ream_0.key\n - genesis.ssz\n - annotated_validators.yaml\n - lantern_0.key\n - config.yaml\n - zeam_0.key\n - hash-sig-keys/validator_1_pk.ssz\n - hash-sig-keys/validator_0_pk.ssz\n - hash-sig-keys/validator_1_pk.json\n - hash-sig-keys/validator_3_sk.json\n ... and 13 more files\n"
}
ok: [lantern_0] => {
"msg": "✅ Genesis directory copied successfully!\n\nSource: /Users/unnawut/Development/repo/lean-quickstart/ansible-devnet/genesis/\nDestination: /home/unnawut/lean-quickstart/genesis/\nRemote host: lantern_0\n\nFiles copied: 28\n - validator-config.yaml\n - nodes.yaml\n - qlean_0.key\n - validators.yaml\n - genesis.json\n - ream_0.key\n - genesis.ssz\n - annotated_validators.yaml\n - lantern_0.key\n - config.yaml\n - zeam_0.key\n - hash-sig-keys/validator_1_pk.ssz\n - hash-sig-keys/validator_0_pk.ssz\n - hash-sig-keys/validator_1_pk.json\n - hash-sig-keys/validator_3_sk.json\n ... and 13 more files\n"
}
PLAY [Parse and validate node names] **************************************************************************************************************************************
Friday 19 December 2025 14:33:48 +0700 (0:00:00.055) 0:00:36.956 *******
TASK [Validate validator-config.yaml exists] ******************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:48 +0700 (0:00:00.316) 0:00:37.273 *******
Friday 19 December 2025 14:33:48 +0700 (0:00:00.012) 0:00:37.286 *******
TASK [Extract all node names] *********************************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:49 +0700 (0:00:00.305) 0:00:37.592 *******
TASK [Set all node names] *************************************************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:49 +0700 (0:00:00.015) 0:00:37.608 *******
Friday 19 December 2025 14:33:49 +0700 (0:00:00.017) 0:00:37.625 *******
TASK [Handle "all" node names - expand to all nodes] **********************************************************************************************************************
ok: [localhost]
Friday 19 December 2025 14:33:49 +0700 (0:00:00.019) 0:00:37.645 *******
Friday 19 December 2025 14:33:49 +0700 (0:00:00.016) 0:00:37.661 *******
Friday 19 December 2025 14:33:49 +0700 (0:00:00.018) 0:00:37.679 *******
Friday 19 December 2025 14:33:49 +0700 (0:00:00.016) 0:00:37.696 *******
TASK [Display deployment targets] *****************************************************************************************************************************************
ok: [localhost] => {
"msg": "Deploying nodes: zeam_0, ream_0, qlean_0, lantern_0"
}
Friday 19 December 2025 14:33:49 +0700 (0:00:00.025) 0:00:37.721 *******
TASK [Add deployment hosts to inventory] **********************************************************************************************************************************
changed: [localhost] => (item=zeam_0)
changed: [localhost] => (item=ream_0)
changed: [localhost] => (item=qlean_0)
changed: [localhost] => (item=lantern_0)
PLAY [Deploy nodes on remote hosts] ***************************************************************************************************************************************
Friday 19 December 2025 14:33:49 +0700 (0:00:00.025) 0:00:37.747 *******
TASK [Include common role] ************************************************************************************************************************************************
included: common for zeam_0, ream_0, qlean_0, lantern_0
Friday 19 December 2025 14:33:49 +0700 (0:00:00.072) 0:00:37.819 *******
TASK [common : Check if running on localhost] *****************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:49 +0700 (0:00:00.064) 0:00:37.884 *******
TASK [common : Install system dependencies (non-localhost)] ***************************************************************************************************************
ok: [ream_0]
ok: [qlean_0]
ok: [zeam_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:50 +0700 (0:00:00.988) 0:00:38.873 *******
TASK [common : Check if Docker is installed] ******************************************************************************************************************************
ok: [ream_0]
ok: [zeam_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:50 +0700 (0:00:00.379) 0:00:39.253 *******
Friday 19 December 2025 14:33:50 +0700 (0:00:00.055) 0:00:39.308 *******
Friday 19 December 2025 14:33:50 +0700 (0:00:00.061) 0:00:39.370 *******
Friday 19 December 2025 14:33:50 +0700 (0:00:00.057) 0:00:39.427 *******
Friday 19 December 2025 14:33:50 +0700 (0:00:00.049) 0:00:39.477 *******
Friday 19 December 2025 14:33:50 +0700 (0:00:00.047) 0:00:39.524 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.046) 0:00:39.571 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.043) 0:00:39.614 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.043) 0:00:39.658 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.047) 0:00:39.706 *******
TASK [common : Check if yq is installed] **********************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:51 +0700 (0:00:00.353) 0:00:40.059 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.046) 0:00:40.105 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.043) 0:00:40.148 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.044) 0:00:40.193 *******
Friday 19 December 2025 14:33:51 +0700 (0:00:00.047) 0:00:40.241 *******
TASK [common : Verify Docker is available] ********************************************************************************************************************************
ok: [ream_0]
ok: [zeam_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:52 +0700 (0:00:00.379) 0:00:40.620 *******
Friday 19 December 2025 14:33:52 +0700 (0:00:00.040) 0:00:40.661 *******
TASK [common : Verify yq is available] ************************************************************************************************************************************
ok: [ream_0]
ok: [zeam_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:52 +0700 (0:00:00.360) 0:00:41.022 *******
Friday 19 December 2025 14:33:52 +0700 (0:00:00.039) 0:00:41.062 *******
Friday 19 December 2025 14:33:52 +0700 (0:00:00.055) 0:00:41.117 *******
TASK [common : Ensure node_names is a list] *******************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:52 +0700 (0:00:00.046) 0:00:41.164 *******
Friday 19 December 2025 14:33:52 +0700 (0:00:00.055) 0:00:41.219 *******
TASK [Deploy this node] ***************************************************************************************************************************************************
included: /Users/unnawut/Development/repo/lean-quickstart/ansible/playbooks/deploy-single-node.yml for zeam_0, ream_0, qlean_0, lantern_0
Friday 19 December 2025 14:33:52 +0700 (0:00:00.049) 0:00:41.269 *******
TASK [Extract client type from node name] *********************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:52 +0700 (0:00:00.044) 0:00:41.314 *******
TASK [Set validator config file path] *************************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:52 +0700 (0:00:00.055) 0:00:41.369 *******
TASK [Extract node configuration] *****************************************************************************************************************************************
ok: [ream_0]
ok: [zeam_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:53 +0700 (0:00:00.397) 0:00:41.766 *******
Friday 19 December 2025 14:33:53 +0700 (0:00:00.044) 0:00:41.810 *******
TASK [Set zeam validator config] ******************************************************************************************************************************************
ok: [zeam_0]
ok: [ream_0]
ok: [qlean_0]
ok: [lantern_0]
Friday 19 December 2025 14:33:53 +0700 (0:00:00.042) 0:00:41.853 *******
TASK [Deploy Zeam node] ***************************************************************************************************************************************************
included: zeam for zeam_0
Friday 19 December 2025 14:33:53 +0700 (0:00:00.053) 0:00:41.906 *******
TASK [zeam : Extract docker image from client-cmd.sh] *********************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:53 +0700 (0:00:00.287) 0:00:42.194 *******
TASK [zeam : Extract deployment mode from client-cmd.sh] ******************************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:53 +0700 (0:00:00.289) 0:00:42.483 *******
TASK [zeam : Set docker image and deployment mode from client-cmd.sh] *****************************************************************************************************
ok: [zeam_0 -> localhost]
Friday 19 December 2025 14:33:53 +0700 (0:00:00.027) 0:00:42.511 *******
TASK [zeam : Extract node configuration from validator-config.yaml] *******************************************************************************************************
ok: [zeam_0] => (item=metricsPort)
ok: [zeam_0] => (item=privkey)
Friday 19 December 2025 14:33:54 +0700 (0:00:00.666) 0:00:43.178 *******
TASK [zeam : Set node metrics port] ***************************************************************************************************************************************
ok: [zeam_0]
Friday 19 December 2025 14:33:54 +0700 (0:00:00.022) 0:00:43.201 *******
TASK [zeam : Ensure node key file exists] *********************************************************************************************************************************
ok: [zeam_0]
Friday 19 December 2025 14:33:54 +0700 (0:00:00.356) 0:00:43.557 *******
TASK [zeam : Debug node key file check] ***********************************************************************************************************************************
ok: [zeam_0] => {
"msg": "Checking for key file at /home/unnawut/lean-quickstart/genesis/zeam_0.key - exists: True"
}
Friday 19 December 2025 14:33:55 +0700 (0:00:00.034) 0:00:43.591 *******
Friday 19 December 2025 14:33:55 +0700 (0:00:00.024) 0:00:43.615 *******
TASK [zeam : Clean node data directory] ***********************************************************************************************************************************
changed: [zeam_0]
Friday 19 December 2025 14:33:55 +0700 (0:00:00.348) 0:00:43.964 *******
TASK [zeam : Create node data directory] **********************************************************************************************************************************
changed: [zeam_0]
Friday 19 December 2025 14:33:55 +0700 (0:00:00.342) 0:00:44.306 *******
TASK [zeam : Set validator config value] **********************************************************************************************************************************
ok: [zeam_0]
Friday 19 December 2025 14:33:55 +0700 (0:00:00.025) 0:00:44.332 *******
TASK [zeam : Pull Zeam docker image] **************************************************************************************************************************************
ok: [zeam_0]
Friday 19 December 2025 14:33:57 +0700 (0:00:02.115) 0:00:46.447 *******
TASK [zeam : Stop existing Zeam container (if any)] ***********************************************************************************************************************
changed: [zeam_0]
Friday 19 December 2025 14:33:58 +0700 (0:00:00.452) 0:00:46.900 *******
TASK [zeam : Start Zeam container] ****************************************************************************************************************************************
changed: [zeam_0]
Friday 19 December 2025 14:34:00 +0700 (0:00:01.797) 0:00:48.698 *******
Friday 19 December 2025 14:34:00 +0700 (0:00:00.013) 0:00:48.711 *******
Friday 19 December 2025 14:34:00 +0700 (0:00:00.014) 0:00:48.726 *******
Friday 19 December 2025 14:34:00 +0700 (0:00:00.014) 0:00:48.740 *******
Friday 19 December 2025 14:34:00 +0700 (0:00:00.014) 0:00:48.754 *******
TASK [Deploy Ream node] ***************************************************************************************************************************************************
included: ream for ream_0
Friday 19 December 2025 14:34:00 +0700 (0:00:00.052) 0:00:48.807 *******
TASK [ream : Extract docker image from client-cmd.sh] *********************************************************************************************************************
ok: [ream_0 -> localhost]
Friday 19 December 2025 14:34:00 +0700 (0:00:00.290) 0:00:49.098 *******
TASK [ream : Extract deployment mode from client-cmd.sh] ******************************************************************************************************************
ok: [ream_0 -> localhost]
Friday 19 December 2025 14:34:00 +0700 (0:00:00.287) 0:00:49.385 *******
TASK [ream : Set docker image and deployment mode from client-cmd.sh] *****************************************************************************************************
ok: [ream_0]
Friday 19 December 2025 14:34:00 +0700 (0:00:00.025) 0:00:49.411 *******
TASK [ream : Extract node configuration from validator-config.yaml] *******************************************************************************************************
ok: [ream_0] => (item=enrFields.quic)
ok: [ream_0] => (item=metricsPort)
ok: [ream_0] => (item=privkey)
Friday 19 December 2025 14:34:01 +0700 (0:00:00.976) 0:00:50.388 *******
TASK [ream : Set node ports] **********************************************************************************************************************************************
ok: [ream_0]
Friday 19 December 2025 14:34:01 +0700 (0:00:00.021) 0:00:50.409 *******
TASK [ream : Ensure node key file exists] *********************************************************************************************************************************
ok: [ream_0]
Friday 19 December 2025 14:34:02 +0700 (0:00:00.343) 0:00:50.753 *******
TASK [ream : Debug node key file check] ***********************************************************************************************************************************
ok: [ream_0] => {
"msg": "Checking for key file at /home/unnawut/lean-quickstart/genesis/ream_0.key - exists: True"
}
Friday 19 December 2025 14:34:02 +0700 (0:00:00.028) 0:00:50.782 *******
Friday 19 December 2025 14:34:02 +0700 (0:00:00.024) 0:00:50.807 *******
TASK [ream : Clean node data directory] ***********************************************************************************************************************************
changed: [ream_0]
Friday 19 December 2025 14:34:02 +0700 (0:00:00.335) 0:00:51.143 *******
TASK [ream : Create node data directory] **********************************************************************************************************************************
changed: [ream_0]
Friday 19 December 2025 14:34:02 +0700 (0:00:00.328) 0:00:51.471 *******
TASK [ream : Pull Ream docker image] **************************************************************************************************************************************
ok: [ream_0]
Friday 19 December 2025 14:34:04 +0700 (0:00:01.125) 0:00:52.597 *******
TASK [ream : Stop existing Ream container (if any)] ***********************************************************************************************************************
changed: [ream_0]
Friday 19 December 2025 14:34:04 +0700 (0:00:00.433) 0:00:53.030 *******
TASK [ream : Start Ream container] ****************************************************************************************************************************************
changed: [ream_0]
Friday 19 December 2025 14:34:05 +0700 (0:00:01.310) 0:00:54.341 *******
TASK [Deploy Qlean node] **************************************************************************************************************************************************
included: qlean for qlean_0
Friday 19 December 2025 14:34:05 +0700 (0:00:00.055) 0:00:54.397 *******
TASK [qlean : Extract docker image from client-cmd.sh] ********************************************************************************************************************
ok: [qlean_0 -> localhost]
Friday 19 December 2025 14:34:06 +0700 (0:00:00.291) 0:00:54.688 *******
TASK [qlean : Extract deployment mode from client-cmd.sh] *****************************************************************************************************************
ok: [qlean_0 -> localhost]
Friday 19 December 2025 14:34:06 +0700 (0:00:00.281) 0:00:54.970 *******
TASK [qlean : Set docker image and deployment mode from client-cmd.sh] ****************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:06 +0700 (0:00:00.028) 0:00:54.999 *******
TASK [qlean : Extract node configuration from validator-config.yaml] ******************************************************************************************************
ok: [qlean_0] => (item=enrFields.quic)
ok: [qlean_0] => (item=metricsPort)
ok: [qlean_0] => (item=privkey)
Friday 19 December 2025 14:34:07 +0700 (0:00:00.969) 0:00:55.968 *******
TASK [qlean : Set node ports] *********************************************************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:07 +0700 (0:00:00.026) 0:00:55.994 *******
TASK [qlean : Extract validator index from validators.yaml] ***************************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:07 +0700 (0:00:00.322) 0:00:56.317 *******
TASK [qlean : Set validator index] ****************************************************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:07 +0700 (0:00:00.034) 0:00:56.352 *******
TASK [qlean : Ensure node key file exists] ********************************************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:08 +0700 (0:00:00.378) 0:00:56.730 *******
TASK [qlean : Debug node key file check] **********************************************************************************************************************************
ok: [qlean_0] => {
"msg": "Checking for key file at /home/unnawut/lean-quickstart/genesis/qlean_0.key - exists: True"
}
Friday 19 December 2025 14:34:08 +0700 (0:00:00.035) 0:00:56.765 *******
Friday 19 December 2025 14:34:08 +0700 (0:00:00.022) 0:00:56.788 *******
TASK [qlean : Clean node data directory] **********************************************************************************************************************************
changed: [qlean_0]
Friday 19 December 2025 14:34:08 +0700 (0:00:00.342) 0:00:57.130 *******
TASK [qlean : Create node data directory] *********************************************************************************************************************************
changed: [qlean_0]
Friday 19 December 2025 14:34:08 +0700 (0:00:00.338) 0:00:57.469 *******
TASK [qlean : Pull Qlean docker image] ************************************************************************************************************************************
ok: [qlean_0]
Friday 19 December 2025 14:34:10 +0700 (0:00:02.052) 0:00:59.521 *******
TASK [qlean : Stop existing Qlean container (if any)] *********************************************************************************************************************
changed: [qlean_0]
Friday 19 December 2025 14:34:11 +0700 (0:00:00.425) 0:00:59.947 *******
TASK [qlean : Start Qlean container] **************************************************************************************************************************************
changed: [qlean_0]
Friday 19 December 2025 14:34:13 +0700 (0:00:01.835) 0:01:01.783 *******
TASK [Deploy Lantern node] ************************************************************************************************************************************************
included: lantern for lantern_0
Friday 19 December 2025 14:34:13 +0700 (0:00:00.059) 0:01:01.842 *******
TASK [lantern : Extract docker image from client-cmd.sh] ******************************************************************************************************************
ok: [lantern_0 -> localhost]
Friday 19 December 2025 14:34:13 +0700 (0:00:00.285) 0:01:02.127 *******
TASK [lantern : Extract deployment mode from client-cmd.sh] ***************************************************************************************************************
ok: [lantern_0 -> localhost]
Friday 19 December 2025 14:34:13 +0700 (0:00:00.284) 0:01:02.412 *******
TASK [lantern : Set docker image and deployment mode from client-cmd.sh] **************************************************************************************************
ok: [lantern_0]
Friday 19 December 2025 14:34:13 +0700 (0:00:00.028) 0:01:02.440 *******
TASK [lantern : Extract node configuration from validator-config.yaml] ****************************************************************************************************
ok: [lantern_0] => (item=enrFields.quic)
ok: [lantern_0] => (item=metricsPort)
ok: [lantern_0] => (item=privkey)
Friday 19 December 2025 14:34:14 +0700 (0:00:00.993) 0:01:03.434 *******
TASK [lantern : Set node ports] *******************************************************************************************************************************************
ok: [lantern_0]
Friday 19 December 2025 14:34:14 +0700 (0:00:00.026) 0:01:03.460 *******
TASK [lantern : Ensure node key file exists] ******************************************************************************************************************************
ok: [lantern_0]
Friday 19 December 2025 14:34:15 +0700 (0:00:00.348) 0:01:03.809 *******
TASK [lantern : Debug node key file check] ********************************************************************************************************************************
ok: [lantern_0] => {
"msg": "Checking for key file at /home/unnawut/lean-quickstart/genesis/lantern_0.key - exists: True"
}
Friday 19 December 2025 14:34:15 +0700 (0:00:00.034) 0:01:03.844 *******
Friday 19 December 2025 14:34:15 +0700 (0:00:00.023) 0:01:03.867 *******
TASK [lantern : Clean node data directory] ********************************************************************************************************************************
changed: [lantern_0]
Friday 19 December 2025 14:34:15 +0700 (0:00:00.362) 0:01:04.229 *******
TASK [lantern : Create node data directory] *******************************************************************************************************************************
changed: [lantern_0]
Friday 19 December 2025 14:34:16 +0700 (0:00:00.338) 0:01:04.568 *******
TASK [lantern : Pull Lantern docker image] ********************************************************************************************************************************
ok: [lantern_0]
Friday 19 December 2025 14:34:19 +0700 (0:00:03.479) 0:01:08.047 *******
TASK [lantern : Stop existing Lantern container (if any)] *****************************************************************************************************************
changed: [lantern_0]
Friday 19 December 2025 14:34:19 +0700 (0:00:00.457) 0:01:08.504 *******
TASK [lantern : Start Lantern container] **********************************************************************************************************************************
changed: [lantern_0]
Friday 19 December 2025 14:34:22 +0700 (0:00:02.555) 0:01:11.059 *******
PLAY RECAP ****************************************************************************************************************************************************************
lantern_0 : ok=34 changed=5 unreachable=0 failed=0 skipped=23 rescued=0 ignored=0
localhost : ok=17 changed=2 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0
qlean_0 : ok=36 changed=5 unreachable=0 failed=0 skipped=23 rescued=0 ignored=0
ream_0 : ok=34 changed=5 unreachable=0 failed=0 skipped=23 rescued=0 ignored=0
zeam_0 : ok=43 changed=5 unreachable=0 failed=0 skipped=31 rescued=0 ignored=0
TASKS RECAP ***************************************************************************************************************************************************************
Friday 19 December 2025 14:34:22 +0700 (0:00:00.039) 0:01:11.099 *******
===============================================================================
Copy hash-sig-keys directory to remote host ------------------------------- 11.85s
Copy genesis config files to remote host ----------------------------------- 7.53s
Copy node private key files to remote host --------------------------------- 3.69s
Run generate-genesis.sh script --------------------------------------------- 3.61s
lantern : Pull Lantern docker image ---------------------------------------- 3.48s
lantern : Start Lantern container ------------------------------------------ 2.56s
zeam : Pull Zeam docker image ---------------------------------------------- 2.12s
qlean : Pull Qlean docker image -------------------------------------------- 2.05s
Check required genesis files exist locally --------------------------------- 2.01s
qlean : Start Qlean container ---------------------------------------------- 1.84s
zeam : Start Zeam container ------------------------------------------------ 1.80s
Gathering Facts ------------------------------------------------------------ 1.67s
ream : Start Ream container ------------------------------------------------ 1.31s
Check each node key file exists locally ------------------------------------ 1.19s
Verify all key files were generated ---------------------------------------- 1.19s
ream : Pull Ream docker image ---------------------------------------------- 1.13s
lantern : Extract node configuration from validator-config.yaml ------------ 0.99s
common : Install system dependencies (non-localhost) ----------------------- 0.99s
ream : Extract node configuration from validator-config.yaml --------------- 0.98s
qlean : Extract node configuration from validator-config.yaml -------------- 0.97s
✅ Ansible deployment completed successfully!Some more task recaps:
TASKS RECAP ***************************************************************************************************************************************************************
Friday 19 December 2025 14:25:52 +0700 (0:00:00.055) 0:01:36.200 *******
===============================================================================
Copy hash-sig-keys directory to remote host ------------------------------- 11.60s
zeam : Pull Zeam docker image --------------------------------------------- 10.20s
lantern : Pull Lantern docker image ---------------------------------------- 8.27s
Copy genesis config files to remote host ----------------------------------- 8.08s
qlean : Pull Qlean docker image -------------------------------------------- 6.43s
ream : Pull Ream docker image ---------------------------------------------- 5.87s
Copy node private key files to remote host --------------------------------- 3.63s
Run generate-genesis.sh script --------------------------------------------- 3.57s
lantern : Start Lantern container ------------------------------------------ 3.24s
qlean : Start Qlean container ---------------------------------------------- 2.94s
zeam : Start Zeam container ------------------------------------------------ 2.45s
ream : Start Ream container ------------------------------------------------ 2.19s
Check required genesis files exist locally --------------------------------- 2.01s
Gathering Facts ------------------------------------------------------------ 1.56s
Verify all key files were generated ---------------------------------------- 1.22s
Check each node key file exists locally ------------------------------------ 1.15s
qlean : Extract node configuration from validator-config.yaml -------------- 0.99s
ream : Extract node configuration from validator-config.yaml --------------- 0.97s
lantern : Extract node configuration from validator-config.yaml ------------ 0.97s
common : Install system dependencies (non-localhost) ----------------------- 0.93sTASKS RECAP ***************************************************************************************************************************************************************
Friday 19 December 2025 15:07:32 +0700 (0:00:00.046) 0:01:12.656 *******
===============================================================================
Copy hash-sig-keys directory to remote host ------------------------------- 11.83s
Copy genesis config files to remote host ----------------------------------- 7.80s
Copy node private key files to remote host --------------------------------- 3.74s
Run generate-genesis.sh script --------------------------------------------- 3.64s
lantern : Pull Lantern docker image ---------------------------------------- 2.83s
Gathering Facts ------------------------------------------------------------ 2.77s
lantern : Start Lantern container ------------------------------------------ 2.52s
qlean : Pull Qlean docker image -------------------------------------------- 2.15s
zeam : Pull Zeam docker image ---------------------------------------------- 2.13s
Check required genesis files exist locally --------------------------------- 1.92s
qlean : Start Qlean container ---------------------------------------------- 1.86s
zeam : Start Zeam container ------------------------------------------------ 1.82s
ream : Start Ream container ------------------------------------------------ 1.36s
ream : Pull Ream docker image ---------------------------------------------- 1.24s
common : Install system dependencies (non-localhost) ----------------------- 1.23s
Verify all key files were generated ---------------------------------------- 1.17s
Check each node key file exists locally ------------------------------------ 1.09s
lantern : Extract node configuration from validator-config.yaml ------------ 1.04s
qlean : Extract node configuration from validator-config.yaml -------------- 0.99s
ream : Extract node configuration from validator-config.yaml --------------- 0.99sTASKS RECAP ***************************************************************************************************************************************************************
Friday 19 December 2025 15:35:04 +0700 (0:00:00.040) 0:01:21.218 *******
===============================================================================
Copy hash-sig-keys directory to remote host ------------------------------- 12.78s
Copy genesis config files to remote host ----------------------------------- 8.04s
ream : Pull Ream docker image ---------------------------------------------- 4.57s
Copy node private key files to remote host --------------------------------- 3.78s
Run generate-genesis.sh script --------------------------------------------- 3.59s
lantern : Start Lantern container ------------------------------------------ 3.55s
Gathering Facts ------------------------------------------------------------ 2.97s
lantern : Pull Lantern docker image ---------------------------------------- 2.85s
Check required genesis files exist locally --------------------------------- 2.14s
qlean : Pull Qlean docker image -------------------------------------------- 2.14s
zeam : Pull Zeam docker image ---------------------------------------------- 2.11s
qlean : Start Qlean container ---------------------------------------------- 1.86s
zeam : Start Zeam container ------------------------------------------------ 1.82s
common : Install system dependencies (non-localhost) ----------------------- 1.40s
ream : Start Ream container ------------------------------------------------ 1.38s
Verify all key files were generated ---------------------------------------- 1.20s
ream : Extract node configuration from validator-config.yaml --------------- 1.14s
lantern : Extract node configuration from validator-config.yaml ------------ 1.12s
Check each node key file exists locally ------------------------------------ 1.11s
qlean : Extract node configuration from validator-config.yaml -------------- 1.01s