From b829a462bc6aaeec9e99909527b5f4f98b5ab1e4 Mon Sep 17 00:00:00 2001 From: u1 Date: Sat, 7 Feb 2026 00:32:39 +0100 Subject: [PATCH] fix(ansible): apply sysctl tuning required by validator --- ansible/playbooks/doc-rpc-sol-min.yml | 29 ++++++++++++++++++++ doc/etap-006-agave-install-identity-start.md | 1 + 2 files changed, 30 insertions(+) diff --git a/ansible/playbooks/doc-rpc-sol-min.yml b/ansible/playbooks/doc-rpc-sol-min.yml index a63ab55..88d1692 100644 --- a/ansible/playbooks/doc-rpc-sol-min.yml +++ b/ansible/playbooks/doc-rpc-sol-min.yml @@ -72,6 +72,23 @@ - { path: "{{ solana_log_dir }}", owner: "{{ solana_user }}", group: "{{ solana_group }}", mode: "0750" } - { path: "/opt/solana/bin", owner: "root", group: "root", mode: "0755" } + - name: Deploy Solana sysctl tuning (network buffers) + ansible.builtin.copy: + dest: /etc/sysctl.d/99-solana-rpc.conf + owner: root + group: root + mode: "0644" + content: | + # Required by agave-validator startup checks + net.core.rmem_max = 134217728 + net.core.wmem_max = 134217728 + register: solana_sysctl_conf + + - name: Apply sysctl tuning when changed + ansible.builtin.command: sysctl --system + changed_when: true + when: solana_sysctl_conf.changed + - name: Deploy tmux config (Ctrl+a prefix) ansible.builtin.copy: src: ../files/operator-dotfiles/tmux.conf @@ -276,6 +293,18 @@ - solana_validator_bin_stat.stat.exists - solana_identity_stat.stat.exists + - name: Verify solana-rpc is active + ansible.builtin.command: systemctl is-active {{ solana_rpc_service_name }} + register: solana_rpc_is_active + changed_when: false + retries: 10 + delay: 3 + until: solana_rpc_is_active.stdout.strip() == "active" + when: + - solana_rpc_manage_service | bool + - solana_validator_bin_stat.stat.exists + - solana_identity_stat.stat.exists + - name: Report skipped solana-rpc start due to missing prerequisites ansible.builtin.debug: msg: diff --git a/doc/etap-006-agave-install-identity-start.md b/doc/etap-006-agave-install-identity-start.md index fd63759..2672944 100644 --- a/doc/etap-006-agave-install-identity-start.md +++ b/doc/etap-006-agave-install-identity-start.md @@ -10,6 +10,7 @@ Cel etapu: domknąć bootstrap uruchomienia `solana-rpc` jako `solana` przez: - Rozszerzyć playbook o zadania instalacyjne Agave (idempotentnie). - Dodać provisioning `identity` jako użytkownik `solana`. +- Dodać minimalny tuning OS wymagany przez startup check (`sysctl`). - Utrzymać bezpieczny start: usługa uruchamiana tylko przy komplecie prereq. - Wykonać testy powdrożeniowe (`systemd`, port, JSON-RPC).