From 428be562c2c0dad3418b0096652c8166452f5e21 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Sun, 27 Nov 2022 19:19:16 +0400 Subject: [PATCH 1/8] Ansible role structure --- playbook.yml | 5 +++++ {defaults => roles/solana-rpc/defaults}/main.yml | 0 fstab.yaml => roles/solana-rpc/fstab.yaml | 0 runner.yaml => roles/solana-rpc/runner.yaml | 0 {tasks => roles/solana-rpc/tasks}/deps.yaml | 0 {tasks => roles/solana-rpc/tasks}/dirs.yaml | 0 {tasks => roles/solana-rpc/tasks}/disks.yaml | 0 {tasks => roles/solana-rpc/tasks}/file_setup.yaml | 0 {tasks => roles/solana-rpc/tasks}/git.yaml | 0 {tasks => roles/solana-rpc/tasks}/keygen.yaml | 0 {tasks => roles/solana-rpc/tasks}/main.yaml | 0 {tasks => roles/solana-rpc/tasks}/ramdisk.yaml | 0 {tasks => roles/solana-rpc/tasks}/rotate.yaml | 0 {tasks => roles/solana-rpc/tasks}/snapshot_downloader.yaml | 0 {tasks => roles/solana-rpc/tasks}/swap.yaml | 0 {tasks => roles/solana-rpc/tasks}/tuner.yaml | 0 {tasks => roles/solana-rpc/tasks}/user.yaml | 0 {tasks => roles/solana-rpc/tasks}/var_check.yaml | 0 {templates => roles/solana-rpc/templates}/montip.py | 0 {templates => roles/solana-rpc/templates}/restart.sh | 0 {templates => roles/solana-rpc/templates}/snapcheck.py | 0 {templates => roles/solana-rpc/templates}/snapshot-finder.py | 0 {templates => roles/solana-rpc/templates}/sol.service | 0 {templates => roles/solana-rpc/templates}/validator.j2 | 0 24 files changed, 5 insertions(+) create mode 100644 playbook.yml rename {defaults => roles/solana-rpc/defaults}/main.yml (100%) rename fstab.yaml => roles/solana-rpc/fstab.yaml (100%) rename runner.yaml => roles/solana-rpc/runner.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/deps.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/dirs.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/disks.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/file_setup.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/git.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/keygen.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/main.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/ramdisk.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/rotate.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/snapshot_downloader.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/swap.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/tuner.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/user.yaml (100%) rename {tasks => roles/solana-rpc/tasks}/var_check.yaml (100%) rename {templates => roles/solana-rpc/templates}/montip.py (100%) rename {templates => roles/solana-rpc/templates}/restart.sh (100%) rename {templates => roles/solana-rpc/templates}/snapcheck.py (100%) rename {templates => roles/solana-rpc/templates}/snapshot-finder.py (100%) rename {templates => roles/solana-rpc/templates}/sol.service (100%) rename {templates => roles/solana-rpc/templates}/validator.j2 (100%) diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..c053827 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,5 @@ +- name: Install/configure Solana RPC + hosts: all + gather_facts: yes + roles: + - { role: solana-rpc } \ No newline at end of file diff --git a/defaults/main.yml b/roles/solana-rpc/defaults/main.yml similarity index 100% rename from defaults/main.yml rename to roles/solana-rpc/defaults/main.yml diff --git a/fstab.yaml b/roles/solana-rpc/fstab.yaml similarity index 100% rename from fstab.yaml rename to roles/solana-rpc/fstab.yaml diff --git a/runner.yaml b/roles/solana-rpc/runner.yaml similarity index 100% rename from runner.yaml rename to roles/solana-rpc/runner.yaml diff --git a/tasks/deps.yaml b/roles/solana-rpc/tasks/deps.yaml similarity index 100% rename from tasks/deps.yaml rename to roles/solana-rpc/tasks/deps.yaml diff --git a/tasks/dirs.yaml b/roles/solana-rpc/tasks/dirs.yaml similarity index 100% rename from tasks/dirs.yaml rename to roles/solana-rpc/tasks/dirs.yaml diff --git a/tasks/disks.yaml b/roles/solana-rpc/tasks/disks.yaml similarity index 100% rename from tasks/disks.yaml rename to roles/solana-rpc/tasks/disks.yaml diff --git a/tasks/file_setup.yaml b/roles/solana-rpc/tasks/file_setup.yaml similarity index 100% rename from tasks/file_setup.yaml rename to roles/solana-rpc/tasks/file_setup.yaml diff --git a/tasks/git.yaml b/roles/solana-rpc/tasks/git.yaml similarity index 100% rename from tasks/git.yaml rename to roles/solana-rpc/tasks/git.yaml diff --git a/tasks/keygen.yaml b/roles/solana-rpc/tasks/keygen.yaml similarity index 100% rename from tasks/keygen.yaml rename to roles/solana-rpc/tasks/keygen.yaml diff --git a/tasks/main.yaml b/roles/solana-rpc/tasks/main.yaml similarity index 100% rename from tasks/main.yaml rename to roles/solana-rpc/tasks/main.yaml diff --git a/tasks/ramdisk.yaml b/roles/solana-rpc/tasks/ramdisk.yaml similarity index 100% rename from tasks/ramdisk.yaml rename to roles/solana-rpc/tasks/ramdisk.yaml diff --git a/tasks/rotate.yaml b/roles/solana-rpc/tasks/rotate.yaml similarity index 100% rename from tasks/rotate.yaml rename to roles/solana-rpc/tasks/rotate.yaml diff --git a/tasks/snapshot_downloader.yaml b/roles/solana-rpc/tasks/snapshot_downloader.yaml similarity index 100% rename from tasks/snapshot_downloader.yaml rename to roles/solana-rpc/tasks/snapshot_downloader.yaml diff --git a/tasks/swap.yaml b/roles/solana-rpc/tasks/swap.yaml similarity index 100% rename from tasks/swap.yaml rename to roles/solana-rpc/tasks/swap.yaml diff --git a/tasks/tuner.yaml b/roles/solana-rpc/tasks/tuner.yaml similarity index 100% rename from tasks/tuner.yaml rename to roles/solana-rpc/tasks/tuner.yaml diff --git a/tasks/user.yaml b/roles/solana-rpc/tasks/user.yaml similarity index 100% rename from tasks/user.yaml rename to roles/solana-rpc/tasks/user.yaml diff --git a/tasks/var_check.yaml b/roles/solana-rpc/tasks/var_check.yaml similarity index 100% rename from tasks/var_check.yaml rename to roles/solana-rpc/tasks/var_check.yaml diff --git a/templates/montip.py b/roles/solana-rpc/templates/montip.py similarity index 100% rename from templates/montip.py rename to roles/solana-rpc/templates/montip.py diff --git a/templates/restart.sh b/roles/solana-rpc/templates/restart.sh similarity index 100% rename from templates/restart.sh rename to roles/solana-rpc/templates/restart.sh diff --git a/templates/snapcheck.py b/roles/solana-rpc/templates/snapcheck.py similarity index 100% rename from templates/snapcheck.py rename to roles/solana-rpc/templates/snapcheck.py diff --git a/templates/snapshot-finder.py b/roles/solana-rpc/templates/snapshot-finder.py similarity index 100% rename from templates/snapshot-finder.py rename to roles/solana-rpc/templates/snapshot-finder.py diff --git a/templates/sol.service b/roles/solana-rpc/templates/sol.service similarity index 100% rename from templates/sol.service rename to roles/solana-rpc/templates/sol.service diff --git a/templates/validator.j2 b/roles/solana-rpc/templates/validator.j2 similarity index 100% rename from templates/validator.j2 rename to roles/solana-rpc/templates/validator.j2 From 508f06508574a0538ebb46e9e03579f04bf80d01 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Sun, 27 Nov 2022 19:26:22 +0400 Subject: [PATCH 2/8] Removing unnecessary files --- requirements.txt | 2 -- roles/solana-rpc/fstab.yaml | 7 ------- roles/solana-rpc/runner.yaml | 6 ------ test_runner.yaml | 7 ------- 4 files changed, 22 deletions(-) delete mode 100644 requirements.txt delete mode 100644 roles/solana-rpc/fstab.yaml delete mode 100644 roles/solana-rpc/runner.yaml delete mode 100644 test_runner.yaml diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 2c8b74e..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -requests -tqdm \ No newline at end of file diff --git a/roles/solana-rpc/fstab.yaml b/roles/solana-rpc/fstab.yaml deleted file mode 100644 index 3af44b2..0000000 --- a/roles/solana-rpc/fstab.yaml +++ /dev/null @@ -1,7 +0,0 @@ -- name: Add the below lines - blockinfile: - path: /etc/fstab - state: present - block: | - /mnt/swapfile swap swap defaults 0 0 - /dev/md0 /mnt ext4 defaults,nofail,discard 0 0 diff --git a/roles/solana-rpc/runner.yaml b/roles/solana-rpc/runner.yaml deleted file mode 100644 index 75dd414..0000000 --- a/roles/solana-rpc/runner.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "playbook runner" - hosts: localhost - connection: local - roles: - - role: "./" diff --git a/test_runner.yaml b/test_runner.yaml deleted file mode 100644 index 987066b..0000000 --- a/test_runner.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: "playbook runner" - hosts: localhost - connection: local - tasks: - - name: var checks - ansible.builtin.import_tasks: var_check.yaml From cd2849cb5b0712fe1a9fb73ad8efd7aa8cc6dac0 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:14:20 +0400 Subject: [PATCH 3/8] Restructure files --- roles/solana-rpc/{templates => files}/restart.sh | 0 roles/solana-rpc/{templates => files}/snapcheck.py | 0 roles/solana-rpc/{templates => files}/snapshot-finder.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename roles/solana-rpc/{templates => files}/restart.sh (100%) rename roles/solana-rpc/{templates => files}/snapcheck.py (100%) rename roles/solana-rpc/{templates => files}/snapshot-finder.py (100%) diff --git a/roles/solana-rpc/templates/restart.sh b/roles/solana-rpc/files/restart.sh similarity index 100% rename from roles/solana-rpc/templates/restart.sh rename to roles/solana-rpc/files/restart.sh diff --git a/roles/solana-rpc/templates/snapcheck.py b/roles/solana-rpc/files/snapcheck.py similarity index 100% rename from roles/solana-rpc/templates/snapcheck.py rename to roles/solana-rpc/files/snapcheck.py diff --git a/roles/solana-rpc/templates/snapshot-finder.py b/roles/solana-rpc/files/snapshot-finder.py similarity index 100% rename from roles/solana-rpc/templates/snapshot-finder.py rename to roles/solana-rpc/files/snapshot-finder.py From b42d2166096dfcfded9a6cd57754dbef1bb8d10c Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:16:13 +0400 Subject: [PATCH 4/8] Replacing template module with copy --- roles/solana-rpc/tasks/file_setup.yaml | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/roles/solana-rpc/tasks/file_setup.yaml b/roles/solana-rpc/tasks/file_setup.yaml index 5065010..9f9dd96 100644 --- a/roles/solana-rpc/tasks/file_setup.yaml +++ b/roles/solana-rpc/tasks/file_setup.yaml @@ -8,21 +8,11 @@ group: solana mode: "0755" -- name: setup sol.service - become: true - become_user: root - template: - src: sol.service - dest: /etc/systemd/system/sol.service - owner: root - group: root - mode: "0755" - - name: copy restart.sh become: true become_user: solana - template: - src: restart.sh + copy: + src: files/restart.sh dest: /home/solana/restart.sh owner: solana group: solana @@ -31,8 +21,8 @@ - name: copy snapcheck.py become: true become_user: solana - template: - src: snapcheck.py + copy: + src: files/snapcheck.py dest: /mnt/snapcheck.py owner: solana group: solana @@ -40,8 +30,8 @@ - name: copy snapshot-finder.py become: true become_user: solana - template: - src: snapshot-finder.py + copy: + src: files/snapshot-finder.py dest: /mnt/snapshot-finder.py owner: solana group: solana From 6a660f3ed848aa12a022c1886031196cf9463b71 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:16:38 +0400 Subject: [PATCH 5/8] New tasks for sol service --- .../solana-rpc/{templates => files}/sol.service | 0 roles/solana-rpc/tasks/main.yaml | 3 +++ roles/solana-rpc/tasks/service.yaml | 16 ++++++++++++++++ 3 files changed, 19 insertions(+) rename roles/solana-rpc/{templates => files}/sol.service (100%) create mode 100644 roles/solana-rpc/tasks/service.yaml diff --git a/roles/solana-rpc/templates/sol.service b/roles/solana-rpc/files/sol.service similarity index 100% rename from roles/solana-rpc/templates/sol.service rename to roles/solana-rpc/files/sol.service diff --git a/roles/solana-rpc/tasks/main.yaml b/roles/solana-rpc/tasks/main.yaml index 6904b22..bd85967 100644 --- a/roles/solana-rpc/tasks/main.yaml +++ b/roles/solana-rpc/tasks/main.yaml @@ -43,6 +43,9 @@ include_tasks: snapshot_downloader.yaml when: download_snapshot|default(true)|bool == true +- name: solana service + include_tasks: service.yaml + - name: restart without waiting become: true become_user: root diff --git a/roles/solana-rpc/tasks/service.yaml b/roles/solana-rpc/tasks/service.yaml new file mode 100644 index 0000000..6ab5460 --- /dev/null +++ b/roles/solana-rpc/tasks/service.yaml @@ -0,0 +1,16 @@ +- name: setup sol.service + become: true + become_user: root + copy: + src: files/sol.service + dest: /etc/systemd/system/sol.service + owner: root + group: root + mode: "0755" + +- name: Enable service sol + become: true + become_user: root + systemd: + name: sol.service + enabled: yes From b2b0134a2ce725b0aade2077330b2306effbc74a Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:16:57 +0400 Subject: [PATCH 6/8] Proper way to mount disk --- roles/solana-rpc/tasks/disks.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/roles/solana-rpc/tasks/disks.yaml b/roles/solana-rpc/tasks/disks.yaml index d065a14..d16fe1d 100644 --- a/roles/solana-rpc/tasks/disks.yaml +++ b/roles/solana-rpc/tasks/disks.yaml @@ -47,9 +47,12 @@ shell: mkfs.ext4 /dev/{{ raid_name.stdout }} when: raid_name.rc == 0 and mount_mnt.rc != 0 -- name: mount disks +- name: mount disks and write entry in fstab become: true become_user: root - shell: mount /dev/{{ raid_name.stdout }} /mnt - when: mount_mnt.rc != 0 - + mount: + path: /mnt + src: /dev/{{ raid_name.stdout }} + fstype: ext4 + state: mounted + when: raid_name.rc == 0 and mount_mnt.rc != 0 \ No newline at end of file From 61162c52d2069ae0ecffa39830aa1d2903691d32 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:17:27 +0400 Subject: [PATCH 7/8] Removing blank line --- roles/solana-rpc/tasks/snapshot_downloader.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/solana-rpc/tasks/snapshot_downloader.yaml b/roles/solana-rpc/tasks/snapshot_downloader.yaml index 037a51c..a9d3ad8 100644 --- a/roles/solana-rpc/tasks/snapshot_downloader.yaml +++ b/roles/solana-rpc/tasks/snapshot_downloader.yaml @@ -11,4 +11,3 @@ become: true become_user: solana shell: python3 /mnt/snapshot-finder.py --snapshot_path /mnt/solana-snapshots --version {{ solana_version }} - From 01e158160e2fa5d82f40d29483e237cea40f4a71 Mon Sep 17 00:00:00 2001 From: bitstan-earthyfrodo Date: Mon, 28 Nov 2022 01:38:45 +0400 Subject: [PATCH 8/8] Updating README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d675d56..bf46967 100644 --- a/README.md +++ b/README.md @@ -54,10 +54,10 @@ cd autoclock-rpc - this command can take between 10-20 minutes based on the specs of the machine - it takes long because it does everything necessary to start the validator (format disks, checkout the solana repo and build it, download the latest snapshot, etc.) - make sure that the solana_version is up to date (see below) -- check the values set in `defaults/main.yml` and update to the values you want +- check the values set in `roles/solana-rpc/defaults/main.yml` and update to the values you want ``` -time ansible-playbook runner.yaml +ansible-playbook playbook.yml ``` #### ~ Parameters explained ~