feat(ansible): install agave and provision identity for solana-rpc
This commit is contained in:
@@ -70,6 +70,7 @@
|
||||
- { path: "{{ solana_ledger_dir }}", owner: "{{ solana_user }}", group: "{{ solana_group }}", mode: "0750" }
|
||||
- { path: "{{ solana_accounts_dir }}", owner: "{{ solana_user }}", group: "{{ solana_group }}", mode: "0750" }
|
||||
- { path: "{{ solana_log_dir }}", owner: "{{ solana_user }}", group: "{{ solana_group }}", mode: "0750" }
|
||||
- { path: "/opt/solana/bin", owner: "root", group: "root", mode: "0755" }
|
||||
|
||||
- name: Deploy tmux config (Ctrl+a prefix)
|
||||
ansible.builtin.copy:
|
||||
@@ -125,6 +126,47 @@
|
||||
path: "{{ solana_validator_bin }}"
|
||||
register: solana_validator_bin_stat
|
||||
|
||||
- name: Install Agave toolchain for solana user when validator missing
|
||||
ansible.builtin.shell: |
|
||||
set -euo pipefail
|
||||
sh -c "$(curl -sSfL {{ solana_install_script_url }})"
|
||||
become_user: "{{ solana_user }}"
|
||||
environment:
|
||||
HOME: "{{ solana_home }}"
|
||||
when: not solana_validator_bin_stat.stat.exists
|
||||
|
||||
- name: Link Agave binaries into /opt/solana/bin
|
||||
ansible.builtin.shell: |
|
||||
set -euo pipefail
|
||||
if [ ! -d "{{ solana_active_release_bin_dir }}" ]; then
|
||||
echo "Active release bin dir missing: {{ solana_active_release_bin_dir }}" >&2
|
||||
exit 1
|
||||
fi
|
||||
for bin in "{{ solana_active_release_bin_dir }}"/*; do
|
||||
name="$(basename "$bin")"
|
||||
ln -sfn "$bin" "/opt/solana/bin/$name"
|
||||
done
|
||||
when: not solana_validator_bin_stat.stat.exists
|
||||
|
||||
- name: Re-check validator binary after install
|
||||
ansible.builtin.stat:
|
||||
path: "{{ solana_validator_bin }}"
|
||||
register: solana_validator_bin_stat
|
||||
|
||||
- name: Ensure identity key exists
|
||||
ansible.builtin.shell: |
|
||||
set -euo pipefail
|
||||
KEYGEN="{{ solana_keygen_primary_bin }}"
|
||||
if [ ! -x "$KEYGEN" ]; then
|
||||
KEYGEN="{{ solana_keygen_fallback_bin }}"
|
||||
fi
|
||||
"$KEYGEN" new --no-passphrase -o "{{ solana_identity_path }}"
|
||||
become_user: "{{ solana_user }}"
|
||||
environment:
|
||||
HOME: "{{ solana_home }}"
|
||||
args:
|
||||
creates: "{{ solana_identity_path }}"
|
||||
|
||||
- name: Check identity key exists
|
||||
ansible.builtin.stat:
|
||||
path: "{{ solana_identity_path }}"
|
||||
|
||||
Reference in New Issue
Block a user