mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-20 19:25:52 +00:00
b7dea45ee0
Playbooks for preflight / teardown / install / reset covering the same ground as dev-install.sh, dev-setup.sh, reset-dev-env.sh. Existing bash scripts untouched — decide which to keep after parity testing. - roles/teardown + teardown catalog README track every known state source; add a task + row when a leak is reported. - roles/init gates smoketest on awsgw readiness (describe-regions poll). - roles/smoketest is dup-tolerant, retry-wrapped, auto-terminates the launched instance. - dev-install.yml skips build/install/init when a healthy environment is already present (4-signal health check), always runs smoketest. - dev-reset.yml captures region/az/external-mode scalars from the existing spinifex.toml and replays them into init. Plan: docs/development/improvements/ansible-dev-lifecycle.md (mulga). Bead: mulga-siv-9.
99 lines
3.1 KiB
YAML
99 lines
3.1 KiB
YAML
---
|
|
- name: init — base admin-init flags
|
|
ansible.builtin.set_fact:
|
|
init_base_flags: >-
|
|
--force
|
|
--region {{ spinifex_region }}
|
|
--az {{ spinifex_az }}
|
|
--node {{ spinifex_node_name }}
|
|
--nodes {{ spinifex_node_count }}
|
|
|
|
- name: init — pool-mode external flags
|
|
ansible.builtin.set_fact:
|
|
init_external_flags: >-
|
|
--external-mode=pool
|
|
--external-pool={{ spinifex_external_pool_start }}-{{ spinifex_external_pool_end }}
|
|
--external-gateway={{ spinifex_external_gateway }}
|
|
--external-prefix-len={{ spinifex_external_prefix_len }}
|
|
when:
|
|
- spinifex_external_mode == 'pool'
|
|
- spinifex_external_pool_start | length > 0
|
|
- spinifex_external_pool_end | length > 0
|
|
|
|
- name: init — NAT-mode external flags
|
|
ansible.builtin.set_fact:
|
|
init_external_flags: >-
|
|
--external-mode=nat
|
|
--gateway-ip={{ spinifex_nat_gateway_ip }}
|
|
--external-gateway={{ spinifex_external_gateway }}
|
|
--external-prefix-len={{ spinifex_external_prefix_len }}
|
|
when:
|
|
- spinifex_external_mode == 'nat'
|
|
- spinifex_nat_gateway_ip | length > 0
|
|
|
|
- name: init — assemble full flag string
|
|
ansible.builtin.set_fact:
|
|
init_all_flags: "{{ init_base_flags }} {{ init_external_flags | default('') }}"
|
|
|
|
- name: init — run spx admin init
|
|
become: true
|
|
ansible.builtin.command: "spx admin init {{ init_all_flags }}"
|
|
changed_when: true
|
|
|
|
- name: init — copy CA to system trust
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: "{{ spinifex_ca_src }}"
|
|
dest: "{{ spinifex_ca_trust_path }}"
|
|
mode: "0644"
|
|
remote_src: true
|
|
|
|
- name: init — rebuild CA bundle (not --fresh — preserve other CAs)
|
|
become: true
|
|
ansible.builtin.command: update-ca-certificates
|
|
changed_when: true
|
|
|
|
- name: init — start spinifex.target
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: spinifex.target
|
|
state: started
|
|
|
|
# systemctl start returns as soon as units activate; awsgw still wires up
|
|
# to NATS + daemons after that. Bash start-dev.sh has internal wait loops;
|
|
# systemd path does not. Poll a benign call until gateway is fully ready.
|
|
- name: init — wait for AWS gateway readiness
|
|
become: true
|
|
become_user: "{{ spinifex_invoking_user }}"
|
|
environment:
|
|
AWS_PROFILE: spinifex
|
|
ansible.builtin.command: aws ec2 describe-regions
|
|
register: init_gw_ready
|
|
until: init_gw_ready.rc == 0
|
|
retries: 30
|
|
delay: 2
|
|
changed_when: false
|
|
|
|
- name: init — build LB agent
|
|
ansible.builtin.command:
|
|
cmd: make build-lb-agent
|
|
chdir: "{{ spinifex_root }}"
|
|
changed_when: true
|
|
when: spinifex_build_lb_image | bool
|
|
|
|
- name: init — import LB system image
|
|
ansible.builtin.command:
|
|
cmd: "{{ spinifex_root }}/scripts/build-system-image.sh {{ spinifex_lb_image_conf }} --import --quiet"
|
|
changed_when: true
|
|
when: spinifex_build_lb_image | bool
|
|
|
|
- name: init — summary
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
Init complete:
|
|
region={{ spinifex_region }}, az={{ spinifex_az }}, node={{ spinifex_node_name }}
|
|
external_mode={{ spinifex_external_mode }}
|
|
spinifex.target: started
|
|
CA: {{ spinifex_ca_trust_path }}
|
|
LB image: {{ 'imported' if spinifex_build_lb_image else 'skipped' }}
|