Compare commits
17 Commits
main
...
main-22aug
Author | SHA1 | Date | |
---|---|---|---|
|
e0913ece08 | ||
|
1a775c6b87 | ||
|
26323e9c41 | ||
|
a79bdc94d0 | ||
|
272ee7522b | ||
|
e85f0b987e | ||
|
7eab098a99 | ||
|
c0502193b2 | ||
|
9be7df6bcf | ||
|
8183934d09 | ||
|
1558f60810 | ||
|
138fcfc321 | ||
|
153ccfd4db | ||
|
eaceb3ecfa | ||
|
c0fd0330af | ||
|
fc49f06d75 | ||
|
17702b1396 |
@ -1,4 +1,3 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
node:
|
||||
@ -21,6 +20,11 @@ services:
|
||||
- "host.docker.internal:host-gateway"
|
||||
stop_grace_period: 1m
|
||||
container_name: infernet-node
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-file: 5
|
||||
max-size: 10m
|
||||
|
||||
redis:
|
||||
image: redis:latest
|
||||
@ -33,6 +37,11 @@ services:
|
||||
- redis-data:/data
|
||||
restart:
|
||||
unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-file: 5
|
||||
max-size: 10m
|
||||
|
||||
fluentbit:
|
||||
image: fluent/fluent-bit:latest
|
||||
@ -47,6 +56,11 @@ services:
|
||||
- network
|
||||
restart:
|
||||
unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-file: 5
|
||||
max-size: 10m
|
||||
|
||||
infernet-anvil:
|
||||
image: ritualnetwork/infernet-anvil:1.0.0
|
||||
@ -58,6 +72,11 @@ services:
|
||||
container_name: infernet-anvil
|
||||
restart:
|
||||
unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-file: 5
|
||||
max-size: 10m
|
||||
|
||||
networks:
|
||||
network:
|
||||
|
256
playbook.yml
256
playbook.yml
@ -1,16 +1,44 @@
|
||||
---
|
||||
- name: System Setup and Configuration
|
||||
hosts: all
|
||||
become: yes
|
||||
|
||||
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Set locale to C.UTF-8
|
||||
command: localectl set-locale LANG=C.UTF-8
|
||||
|
||||
- name: Create APT configuration file to assume yes
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/apt/apt.conf.d/90forceyes
|
||||
content: |
|
||||
APT::Get::Assume-Yes "true";
|
||||
mode: '0644'
|
||||
|
||||
- name: Append command to .bash_history
|
||||
ansible.builtin.blockinfile:
|
||||
path: "~/.bash_history"
|
||||
create: true
|
||||
block: |
|
||||
cd ~/ritual; bash rebuild.sh
|
||||
nano ~/ritual/projects/hello-world/container/config.json
|
||||
docker logs infernet-node -f
|
||||
docker logs --since 10m infernet-node -f
|
||||
marker: ""
|
||||
mode: '0644'
|
||||
|
||||
|
||||
- name: Append command to .bash_rc
|
||||
ansible.builtin.blockinfile:
|
||||
path: "~/.bashrc"
|
||||
create: true
|
||||
insertafter: EOF
|
||||
block: |
|
||||
cd /root/ritual
|
||||
marker: ""
|
||||
mode: '0644'
|
||||
|
||||
- name: Update /etc/bash.bashrc
|
||||
blockinfile:
|
||||
ansible.builtin.blockinfile:
|
||||
path: /etc/bash.bashrc
|
||||
block: |
|
||||
export HISTTIMEFORMAT='%F, %T '
|
||||
@ -23,27 +51,23 @@
|
||||
export LC_ALL=C.UTF-8
|
||||
alias ls='ls --color=auto'
|
||||
shopt -s cmdhist
|
||||
create: true
|
||||
marker: ""
|
||||
mode: '0644'
|
||||
|
||||
- name: Ensure ~/.inputrc exists
|
||||
file:
|
||||
path: /root/.inputrc
|
||||
state: touch
|
||||
|
||||
- name: Update ~/.inputrc
|
||||
blockinfile:
|
||||
path: ~/.inputrc
|
||||
- name: Update .inputrc for the current user
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ ansible_env.HOME }}/.inputrc"
|
||||
block: |
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
|
||||
- name: Ensure ~/.nanorc exists
|
||||
file:
|
||||
path: /root/.nanorc
|
||||
state: touch
|
||||
create: true
|
||||
marker: ""
|
||||
mode: '0644'
|
||||
|
||||
- name: Update ~/.nanorc
|
||||
blockinfile:
|
||||
path: ~/.nanorc
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ ansible_env.HOME }}/.nanorc"
|
||||
block: |
|
||||
set nohelp
|
||||
set tabsize 4
|
||||
@ -54,24 +78,31 @@
|
||||
set backupdir /tmp/
|
||||
set locking
|
||||
include /usr/share/nano/*.nanorc
|
||||
create: true
|
||||
marker: ""
|
||||
mode: '0644'
|
||||
|
||||
- name: Set hostname
|
||||
shell: |
|
||||
hostnamectl set-hostname {{ serverid }}
|
||||
echo "127.0.1.1 {{ serverid }}" >> /etc/hosts
|
||||
- name: Set hostname
|
||||
ansible.builtin.hostname:
|
||||
name: "{{ serverid }}"
|
||||
|
||||
- name: Ensure hostname is in /etc/hosts
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/hosts
|
||||
regexp: '^127\.0\.1\.1\s+'
|
||||
line: "127.0.1.1 {{ serverid }}"
|
||||
state: present
|
||||
|
||||
- name: Update and upgrade apt
|
||||
apt:
|
||||
update_cache: yes
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
upgrade: dist
|
||||
force_apt_get: yes
|
||||
force_apt_get: true
|
||||
register: apt_update_result
|
||||
retries: 50
|
||||
delay: 50
|
||||
until: apt_update_result is succeeded
|
||||
until: apt_update_result is success
|
||||
|
||||
- name: Install necessary packages
|
||||
apt:
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
@ -83,132 +114,115 @@
|
||||
state: present
|
||||
|
||||
- name: Install pip package web3
|
||||
pip:
|
||||
ansible.builtin.pip:
|
||||
name: web3
|
||||
extra_args: --break-system-packages
|
||||
|
||||
- name: Install Docker
|
||||
shell: curl -sL https://get.docker.com | sudo sh -
|
||||
|
||||
- name: Ensure /etc/docker/daemon.json exists
|
||||
file:
|
||||
path: /etc/docker/daemon.json
|
||||
state: touch
|
||||
|
||||
- name: Update Docker daemon configuration for journald logging
|
||||
copy:
|
||||
dest: /etc/docker/daemon.json
|
||||
content: |
|
||||
{
|
||||
"log-driver": "journald"
|
||||
}
|
||||
|
||||
- name: Restart Docker
|
||||
service:
|
||||
name: docker
|
||||
state: restarted
|
||||
# - name: Install Docker
|
||||
# ansible.builtin.shell: curl -sL https://get.docker.com | sudo sh -
|
||||
#
|
||||
# - name: Update Docker daemon configuration for journald logging
|
||||
# ansible.builtin.copy:
|
||||
# dest: /etc/docker/daemon.json
|
||||
# content: |
|
||||
# { "log-driver": "journald" }
|
||||
#
|
||||
# - name: Restart Docker
|
||||
# ansible.builtin.service:
|
||||
# name: docker
|
||||
# state: restarted
|
||||
|
||||
- name: Docker login
|
||||
shell: docker login -u {{ docker_username }} -p {{ docker_password }}
|
||||
ansible.builtin.shell: docker login -u {{ docker_username }} -p {{ docker_password }}
|
||||
|
||||
- name: Update journald log SystemMaxUse=2G configuration
|
||||
lineinfile:
|
||||
path: /etc/systemd/journald.conf
|
||||
line: 'SystemMaxUse=2G'
|
||||
insertafter: EOF
|
||||
create: yes
|
||||
|
||||
- name: Restart journald
|
||||
service:
|
||||
name: systemd-journald
|
||||
state: restarted
|
||||
# - name: Update journald log SystemMaxUse=2G configuration
|
||||
# ansible.builtin.lineinfile:
|
||||
# path: /etc/systemd/journald.conf
|
||||
# regexp: '^SystemMaxUse='
|
||||
# line: 'SystemMaxUse=2G'
|
||||
# state: present
|
||||
# backup: yes
|
||||
# validate: 'journaldctl check-config %s'
|
||||
#
|
||||
# - name: Restart journald
|
||||
# ansible.builtin.service:
|
||||
# name: systemd-journald
|
||||
# state: restarted
|
||||
|
||||
- name: Setup Foundry
|
||||
shell: |
|
||||
ansible.builtin.shell: |
|
||||
mkdir -p ~/foundry && cd ~/foundry
|
||||
curl -L https://foundry.paradigm.xyz | bash
|
||||
args:
|
||||
executable: /bin/bash
|
||||
|
||||
- name: Run foundryup
|
||||
shell: |
|
||||
ansible.builtin.shell: |
|
||||
source ~/.bashrc && foundryup
|
||||
args:
|
||||
executable: /bin/bash
|
||||
|
||||
- name: Clone ritual-says-gm repository
|
||||
git:
|
||||
repo: https://gitea.vvzvlad.xyz/vvzvlad/ritual-says-gm.git
|
||||
dest: ~/ritual-says-gm
|
||||
force: yes
|
||||
- name: Clone repository
|
||||
ansible.builtin.git:
|
||||
repo: https://gitea.vvzvlad.xyz/vvzvlad/ritual.git
|
||||
dest: "{{ ansible_env.HOME }}/ritual"
|
||||
version: "{{ git_version }}"
|
||||
force: true
|
||||
async: "{{ 60 * 15 }}"
|
||||
poll: 30
|
||||
|
||||
- name: Update wallet, private key and RPC URL in project
|
||||
shell: |
|
||||
cd ~/ritual-says-gm
|
||||
bash update.sh {{ wallet }} {{ private_key }} {{ rpc_url }}
|
||||
|
||||
- name: Remove old Forge and Infernet SDK
|
||||
shell: |
|
||||
cd ~/ritual-says-gm
|
||||
rm -rf projects/hello-world/contracts/lib/forge-std
|
||||
rm -rf projects/hello-world/contracts/lib/infernet-sdk
|
||||
ansible.builtin.shell: bash update.sh {{ wallet }} {{ private_key }} {{ rpc_url }}
|
||||
args:
|
||||
chdir: "{{ ansible_env.HOME }}/ritual"
|
||||
|
||||
|
||||
- name: Install Forge and Infernet SDK
|
||||
shell: |
|
||||
cd ~/foundry && source ~/.bashrc && foundryup
|
||||
cd ~/ritual-says-gm
|
||||
cd projects/hello-world/contracts
|
||||
ansible.builtin.shell: |
|
||||
rm -rf {{ ansible_env.HOME }}/ritual/projects/hello-world/contracts/lib/forge-std
|
||||
rm -rf {{ ansible_env.HOME }}/ritual/projects/hello-world/contracts/lib/infernet-sdk
|
||||
cd {{ ansible_env.HOME }}/foundry && source {{ ansible_env.HOME }}/.bashrc && foundryup
|
||||
cd {{ ansible_env.HOME }}/ritual/projects/hello-world/contracts
|
||||
forge install --no-commit foundry-rs/forge-std
|
||||
forge install --no-commit ritual-net/infernet-sdk
|
||||
args:
|
||||
executable: /bin/bash
|
||||
|
||||
- name: Deploy container
|
||||
shell: |
|
||||
cd ~/ritual-says-gm && project=hello-world make deploy-container
|
||||
ansible.builtin.shell: project=hello-world make deploy-container
|
||||
args:
|
||||
chdir: "{{ ansible_env.HOME }}/ritual"
|
||||
|
||||
- name: Deploy contracts
|
||||
shell: cd ~/ritual-says-gm && project=hello-world make deploy-contracts 2>&1
|
||||
ansible.builtin.shell: project=hello-world make deploy-contracts 2>&1
|
||||
register: contract_deploy_output
|
||||
ignore_errors: yes
|
||||
retries: 3
|
||||
delay: 53
|
||||
until: '"ONCHAIN EXECUTION COMPLETE & SUCCESSFUL" in contract_deploy_output.stdout'
|
||||
args:
|
||||
chdir: "{{ ansible_env.HOME }}/ritual"
|
||||
retries: 5
|
||||
delay: 120
|
||||
failed_when: '"ONCHAIN EXECUTION COMPLETE & SUCCESSFUL" not in contract_deploy_output.stdout'
|
||||
|
||||
- name: Update CallContract.s.sol with contract address
|
||||
shell: |
|
||||
cd ~/ritual-says-gm
|
||||
contract_address=$(jq -r '.transactions[0].contractAddress' projects/hello-world/contracts/broadcast/Deploy.s.sol/8453/run-latest.json)
|
||||
checksum_address=$(python3 toChecksumAddress.py $contract_address)
|
||||
sed -i "s/SaysGM(.*/SaysGM($checksum_address);/" projects/hello-world/contracts/script/CallContract.s.sol
|
||||
ansible.builtin.shell: bash update_contracts.sh
|
||||
args:
|
||||
chdir: "{{ ansible_env.HOME }}/ritual"
|
||||
|
||||
- name: Call contract
|
||||
shell: cd ~/ritual-says-gm && project=hello-world make call-contract 2>&1
|
||||
register: contract_output
|
||||
ignore_errors: yes
|
||||
retries: 3
|
||||
delay: 55
|
||||
until: '"ONCHAIN EXECUTION COMPLETE & SUCCESSFUL" in contract_output.stdout'
|
||||
ansible.builtin.shell: project=hello-world make call-contract 2>&1
|
||||
register: contract_call_output
|
||||
args:
|
||||
chdir: "{{ ansible_env.HOME }}/ritual"
|
||||
retries: 5
|
||||
delay: 120
|
||||
failed_when: '"ONCHAIN EXECUTION COMPLETE & SUCCESSFUL" not in contract_call_output.stdout'
|
||||
|
||||
- name: Set Docker containers to restart unless stopped
|
||||
shell: |
|
||||
docker update --restart unless-stopped hello-world
|
||||
docker update --restart unless-stopped infernet-node
|
||||
docker update --restart unless-stopped deploy-redis-1
|
||||
docker update --restart unless-stopped infernet-anvil
|
||||
docker update --restart unless-stopped deploy-fluentbit-1
|
||||
|
||||
- name: Create APT configuration file to assume yes
|
||||
copy:
|
||||
dest: /etc/apt/apt.conf.d/90forceyes
|
||||
content: |
|
||||
APT::Get::Assume-Yes "true";
|
||||
|
||||
- name: Set permissions on APT configuration file
|
||||
file:
|
||||
path: /etc/apt/apt.conf.d/90forceyes
|
||||
mode: '0644'
|
||||
# - name: Set Docker containers to restart unless stopped
|
||||
# ansible.builtin.shell: |
|
||||
# docker update --restart unless-stopped hello-world
|
||||
# docker update --restart unless-stopped infernet-node
|
||||
# docker update --restart unless-stopped deploy-redis-1
|
||||
# docker update --restart unless-stopped infernet-anvil
|
||||
# docker update --restart unless-stopped deploy-fluentbit-1
|
||||
|
||||
- name: Remove docker login credentials
|
||||
shell: rm -rf /root/.docker/config.json
|
||||
ignore_errors: yes
|
||||
ansible.builtin.shell: rm -rf /root/.docker/config.json
|
||||
|
@ -24,8 +24,8 @@
|
||||
},
|
||||
"forward_stats": true,
|
||||
"snapshot_sync": {
|
||||
"sleep": 2,
|
||||
"batch_size": 10000,
|
||||
"sleep": 3,
|
||||
"batch_size": 1800,
|
||||
"starting_sub_id": 100000
|
||||
},
|
||||
"containers": [
|
||||
|
8
rebuild.sh
Normal file
8
rebuild.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
cd ~/ritual
|
||||
project=hello-world make deploy-container
|
||||
project=hello-world make deploy-contracts
|
||||
bash update_contracts.sh
|
||||
project=hello-world make call-contract
|
7
update_contracts.sh
Normal file
7
update_contracts.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
cd ~/ritual
|
||||
contract_address=$(jq -r '.transactions[0].contractAddress' projects/hello-world/contracts/broadcast/Deploy.s.sol/8453/run-latest.json)
|
||||
checksum_address=$(python3 toChecksumAddress.py $contract_address)
|
||||
sed -i "s/SaysGM(.*/SaysGM($checksum_address);/" projects/hello-world/contracts/script/CallContract.s.sol
|
Loading…
Reference in New Issue
Block a user