Files

47 lines
1.6 KiB
YAML

---
# Bootstrap самого eget: скачать релиз с GitHub, распаковать, поставить бинарник.
# Идемпотентность — по версии уже установленного eget; чужой eget нельзя обновить
# им самим (chicken-and-egg), поэтому качаем архив релиза напрямую.
- name: "Check installed eget version"
ansible.builtin.command:
cmd: "{{ eget_install_path }} --version"
register: eget_version_check
changed_when: false
failed_when: false
check_mode: false # read-only проба: нужна и в --check, чтобы gate ниже был честным
- name: "Install eget from GitHub release"
when: >-
eget_version_check.rc != 0
or eget_version not in eget_version_check.stdout
block:
- name: "Download eget release archive"
ansible.builtin.get_url:
url: "{{ eget_download_url }}"
dest: "{{ eget_download_dest }}"
checksum: "{{ eget_download_checksum or omit }}"
mode: "0600"
- name: "Extract eget release archive"
ansible.builtin.unarchive:
src: "{{ eget_download_dest }}"
dest: "/tmp"
remote_src: true
- name: "Install eget binary"
ansible.builtin.copy:
src: '{{ (eget_unarchive_dest, "eget") | path_join }}'
dest: "{{ eget_install_path }}"
mode: "0755"
remote_src: true
always:
- name: "Remove eget bootstrap artifacts"
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop:
- "{{ eget_download_dest }}"
- "{{ eget_unarchive_dest }}"