added roles/ansible-gentoo_install/
This commit is contained in:
156
roles/ansible-gentoo_install/tasks/tarball.yml
Normal file
156
roles/ansible-gentoo_install/tasks/tarball.yml
Normal file
@@ -0,0 +1,156 @@
|
||||
# -*- mode: yaml; indent-tabs-mode: nil; tab-width: 2; coding: utf-8-unix -*-
|
||||
# localhost
|
||||
---
|
||||
- name: "DEBUG: ansible-gentoo_install tarball"
|
||||
debug:
|
||||
verbosity: 1
|
||||
msg: "DEBUG: ansible-gentoo_install tarball"
|
||||
|
||||
- name: test we are NOT in the chroot
|
||||
shell: |
|
||||
[ -n "{{AGI_NBD_MP}}" ] || exit 2
|
||||
[ -d "{{AGI_NBD_MP}}" ] || exit 3
|
||||
check_mode: false
|
||||
|
||||
- name: gpg keys system
|
||||
# Option --keyserver must be used to
|
||||
environment: "{{proxy_env}}"
|
||||
shell: |
|
||||
/usr/bin/gpg --list-keys | grep "{{ item.uid }}" || \
|
||||
/usr/bin/gpg --recv-keys \
|
||||
--keyserver "{{ AGI_GPG_SERVER }}" "{{ item.uid }}"
|
||||
with_items: "{{ agi_gpg_keys_system }}"
|
||||
when:
|
||||
- agi_gpg_keys_system|length > 0
|
||||
- BASE_ARE_CONNECTED|default('') != ''
|
||||
# FixMe:
|
||||
ignore_errors: true
|
||||
|
||||
- name: check files dir
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
AGI_NBD_FILES="{{AGI_NBD_FILES}}"
|
||||
[ -n "$AGI_NBD_FILES" ] || exit 1
|
||||
[ -d "$AGI_NBD_FILES" ] || exit 2
|
||||
|
||||
- name: determine latest stage tarball
|
||||
environment: "{{proxy_env}}"
|
||||
uri:
|
||||
url: "{{ AGI_install_baseurl }}{{ AGI_install_latest_stage_pointer }}"
|
||||
return_content: yes
|
||||
dest: "{{AGI_NBD_FILES}}/latest-stage3-amd64-openrc.txt"
|
||||
creates: "{{AGI_NBD_FILES}}/latest-stage3-amd64-openrc.txt"
|
||||
register: latest_stage
|
||||
|
||||
- name: read tarball
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
AGI_NBD_FILES="{{AGI_NBD_FILES}}"
|
||||
filename=$(grep ^stage "$AGI_NBD_FILES/latest-stage3-amd64-openrc.txt" | \
|
||||
sed -e 's/ .*//' ) ;
|
||||
suffix=$(echo $filename | sed -e 's/.*\././' );
|
||||
prefix=$(echo $filename | sed -e "s/$suffix//" );
|
||||
echo $filename
|
||||
register: tarball_out
|
||||
|
||||
- set_fact:
|
||||
latest_stage_tarball_url_suffix: "{{ ( latest_stage.content.splitlines() | reject('match', '#') | first ).split(' ')[0] }}"
|
||||
latest_stage_tarball: "{{ ( latest_stage.content.splitlines() | reject('match', '#') | first ).split(' ')[0].split('/')[1] }}"
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
- false
|
||||
|
||||
- set_fact:
|
||||
latest_stage_tarball_url_suffix: "{{tarball_out.stdout}}"
|
||||
# there's not directory now
|
||||
latest_stage_tarball: "{{tarball_out.stdout}}"
|
||||
latest_portage_tarball: portage-20231223.tar.xz
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
- tarball_out.rc|default(1) == 0
|
||||
|
||||
- name: fetch latest stage tarball
|
||||
environment: "{{proxy_env}}"
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
url: "{{ item.url }}"
|
||||
dest: "{{ item.dest }}"
|
||||
creates: "{{ item.creates }}"
|
||||
with_items:
|
||||
-
|
||||
url: "{{ AGI_install_baseurl }}{{ latest_stage_tarball_url_suffix }}"
|
||||
dest: "{{AGI_NBD_FILES}}/{{ latest_stage_tarball }}"
|
||||
creates: "{{AGI_NBD_FILES}}/{{ latest_stage_tarball }}"
|
||||
-
|
||||
url: "{{ AGI_install_baseurl }}{{ latest_stage_tarball_url_suffix }}.sha256"
|
||||
dest: "{{AGI_NBD_FILES}}/{{ latest_stage_tarball }}.sha256"
|
||||
creates: "{{AGI_NBD_FILES}}/{{ latest_stage_tarball }}.sha256"
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
|
||||
- name: check stage tarball
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
cd "{{AGI_NBD_FILES}}" || exit 1
|
||||
sha256sum "{{ latest_stage_tarball }}.sha256"
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
|
||||
- name: extract stage tarball
|
||||
unarchive:
|
||||
src: "{{AGI_NBD_FILES}}/{{ latest_stage_tarball }}"
|
||||
dest: "{{AGI_NBD_MP}}"
|
||||
remote_src: no
|
||||
creates: "{{AGI_NBD_MP}}/var"
|
||||
|
||||
- name: fetch latest portage tarball
|
||||
environment: "{{proxy_env}}"
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
url: "{{ AGI_install_baseurl }}{{ latest_portage_tarball }}"
|
||||
dest: "{{AGI_NBD_FILES}}/{{ latest_portage_tarball }}"
|
||||
creates: "{{AGI_NBD_FILES}}/{{ latest_portage_tarball }}"
|
||||
|
||||
|
||||
- name: test portage tarball
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
cd "{{AGI_NBD_FILES}}"
|
||||
md5sum -c "{{ latest_portage_tarball }}.md5sum"
|
||||
|
||||
- name: test gpg not GENTOO
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
# E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
|
||||
[ -f /usr/local/share/openpgp-keys/gentoo-release.asc ] || exit 1
|
||||
gpg --list-keys | grep E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250 || \
|
||||
gpg --import /usr/local/share/openpgp-keys/gentoo-release.asc || exit 2
|
||||
when:
|
||||
- "ansible_distribution != 'Gentoo'"
|
||||
|
||||
- name: test gpg GENTOO
|
||||
shell: |
|
||||
# E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
|
||||
[ -f /usr/share/openpgp-keys/gentoo-release.asc ] || \
|
||||
emerge -v sec-keys/openpgp-keys-gentoo-release || exit 1
|
||||
gpg --list-keys | grep E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250 || \
|
||||
gpg --import /usr/share/openpgp-keys/gentoo-release.asc || exit 2
|
||||
when:
|
||||
- "ansible_distribution == 'Gentoo'"
|
||||
|
||||
- name: test portage tarball gpg our copy
|
||||
environment: "{{shell_env}}"
|
||||
shell: |
|
||||
# E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
|
||||
gpg --list-keys | grep E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250 || exit 2
|
||||
gpg --verify "{{AGI_NBD_FILES}}/{{ latest_portage_tarball }}.gpgsig" \
|
||||
"{{AGI_NBD_FILES}}/{{ latest_portage_tarball }}" || exit 3$?
|
||||
|
||||
- name: extract portage tarball
|
||||
unarchive:
|
||||
src: "{{AGI_NBD_FILES}}/{{ latest_portage_tarball }}"
|
||||
dest: "{{AGI_NBD_MP}}/usr"
|
||||
remote_src: no
|
||||
creates: "{{AGI_NBD_MP}}/usr/portage"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user