47 lines
1.6 KiB
YAML
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 }}"
|