testnet-ops/nitro-bridge-demo-setup/setup-optimism.yml

106 lines
4.1 KiB
YAML

- name: Setup L1 and L2 optimism on remote host
hosts: "{{ target_host }}"
vars_files:
- vars.yml
environment:
PATH: "{{ ansible_env.PATH }}:/home/{{ansible_user}}/bin"
tasks:
- name: Create directory for nitro-stack
file:
path: "{{ nitro_directory }}"
state: directory
- name: Change owner of nitro-directory
file:
path: "{{ nitro_directory }}"
owner: "{{ansible_user}}"
group: "{{ansible_user}}"
state: directory
recurse: yes
- name: Clone fixturenet-eth-stack
command: laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-eth-stacks --pull
- name: Clone fixturenet-optimism-stack
command: laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-optimism-stack --pull
ignore_errors: true
- name: Clone required repositories for fixturenet-eth
command: laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth setup-repositories --pull
- name: Clone required repositories for fixturenet-optimism
command: laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism setup-repositories --pull
ignore_errors: true
- name: Remove any older foundary image with 'latest' tag
docker_image:
name: "ghcr.io/foundry-rs/foundry"
state: absent
tag: latest
- name: Build container images for L1
command: laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth build-containers --force-rebuild
when: not skip_container_build
- name: Build container images for L2
command: laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism build-containers --force-rebuild
when: not skip_container_build
- name: Remove any dangling docker images
command: docker image prune -f
- name: Copy over spec file for L1 deployment
template:
src: "./templates/specs/l1-spec.yml.j2"
dest: "{{ nitro_directory }}/fixturenet-eth-spec.yml"
- name: Copy over spec file for L2 deployment
template:
src: "./templates/specs/l2-spec.yml.j2"
dest: "{{ nitro_directory }}/fixturenet-optimism-spec.yml"
- name: Check if the deployment directory exists for L1
stat:
path: "{{ nitro_directory }}/fixturenet-eth-deployment"
register: l1_deployment_dir
- name: Create a deployment from the spec file for L1
command: laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy create --spec-file fixturenet-eth-spec.yml --deployment-dir fixturenet-eth-deployment
args:
chdir: "{{ nitro_directory }}"
when: not l1_deployment_dir.stat.exists
- name: Check if the deployment directory exists for L2
stat:
path: "{{ nitro_directory }}/fixturenet-optimism-deployment"
register: l2_deployment_dir
- name: Create a deployment from the spec file for L2
command: laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism deploy create --spec-file fixturenet-optimism-spec.yml --deployment-dir fixturenet-optimism-deployment
args:
chdir: "{{ nitro_directory }}"
when: not l2_deployment_dir.stat.exists
- name: Place both deployments in the same namespace
copy:
src: "{{ nitro_directory }}/fixturenet-eth-deployment/deployment.yml"
dest: "{{ nitro_directory }}/fixturenet-optimism-deployment/deployment.yml"
remote_src: "{{ target_host != 'localhost' }}"
- name: Check if the config.env file is empty
shell: "[ -s '{{ nitro_directory }}/fixturenet-eth-deployment/config.env' ] && echo 'File is not empty' || echo 'File is empty'"
register: file_check_result
- name: Display the result of the file check
debug:
msg: "{{ file_check_result.stdout }}"
- name: Copy config.env for fixturenet eth deployment if it is empty
template:
src: "./templates/configs/eth-config.env"
dest: "{{ nitro_directory }}/fixturenet-eth-deployment/config.env"
when: file_check_result.stdout == 'File is empty'