Skip to content

Commit

Permalink
PRE - Network role consolidation
Browse files Browse the repository at this point in the history
  • Loading branch information
aybarsm committed Jul 13, 2024
1 parent ccef8eb commit 2209d1b
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 11 deletions.
1 change: 1 addition & 0 deletions galaxy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ dependencies:
ansible.posix: "*"
community.general: "*"
aybarsm.helper: "*"
lae.proxmox: "*"
repository: https://github.com/aybarsm/ansible-collection-linux
documentation: https://github.com/aybarsm/ansible-collection-linux
homepage: https://github.com/aybarsm/ansible-collection-linux
Expand Down
8 changes: 2 additions & 6 deletions roles/proxmox/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ proxmox__role_enabled: false
proxmox__repo_url_enterprise: https://enterprise.proxmox.com/debian
proxmox__repo_url_no_subscription: http://download.proxmox.com/debian

proxmox__purpose_names: ['pve', 'pbs', 'pmg', 'ceph-pacific', 'ceph-quincy', 'ceph-reef']
proxmox__purpose_names: ['pve', 'pbs', 'pmg', 'ceph_pacific', 'ceph_quincy', 'ceph_reef']
proxmox__purpose_types: ['enterprise', 'no-subscription']
proxmox__purpose_packages:
pve: pve-manager
Expand Down Expand Up @@ -40,8 +40,4 @@ proxmox__host: {}
# version: 3.2.4-1
# pmg:
# type: no-subscription
# version: 8.1.0

# The combination strategy below is highly nested hierarchy compliant and recommended (Example provided below)
# proxmox__host > proxmox__group > proxmox__default
proxmox__all: "{{ proxmox__default | combine(proxmox__group, proxmox__host, recursive=true, list_merge='replace') }}"
# version: 8.1.0
3 changes: 2 additions & 1 deletion roles/proxmox/meta/main.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# dependencies:
# - role: aybarsm.linux.package_manager
# - role: aybarsm.linux.package_manager
# - role: lae.proxmox
10 changes: 8 additions & 2 deletions roles/proxmox/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
- name: Proxmox Query
become: true
proxmox_query:
query: storage
register: proxmox__query_storage
- name: Debug
ansible.builtin.debug:
msg:
proxmox__query_storage: "{{ proxmox__query_storage }}"
# role_path: "{{ role_path }}"
purpose_package_setup: "{{ lookup('template', proxmox__purpose_package_setup_template) }}"
# purpose_package_setup: "{{ lookup('template', proxmox__purpose_package_setup_template) }}"
delegate_to: localhost
# - name: Import aybarsm linux ansible role
# ansible.builtin.import_role:
Expand All @@ -16,4 +22,4 @@
# - name: Import aybarsm linux ansible role - settle local fact tasks
# ansible.builtin.import_role:
# name: aybarsm.linux.ansible
# tasks_from: settle_local_facts.yml
# tasks_from: settle_local_facts.yml
4 changes: 2 additions & 2 deletions roles/proxmox/templates/purpose_package_setup.j2
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{%- endif -%}
{%- set proxmox_repos = [] -%}
{%- set proxmox_packages = [] -%}
{%- if proxmox__all.purposes is defined -%}
{%- if proxmox__manage_purpose_package_setup is defined and proxmox__manage_purpose_package_setup and proxmox__all.purposes is defined -%}
{%- for purpose in proxmox__purpose_names -%}
{%- for purpose_type in proxmox__purpose_types -%}
{%- set host_config = proxmox__all.purposes[purpose] if purpose in proxmox__all.purposes else none -%}
Expand All @@ -29,7 +29,7 @@
}) -%}
{%- endif -%}
{%- elif purpose.startswith('ceph-') -%}
{%- set proxmox_repos = proxmox_repos.append({
{%- set proxmox_repos = proxmox_repos.append({
'type': 'repo',
'repo': 'deb ' + purpose_repo + '/' + purpose + ' ' + ansible_distribution_release + ' ' + purpose_type,
'filename': 'ceph',
Expand Down
46 changes: 46 additions & 0 deletions roles/proxmox/vars/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# The combination strategy below is highly nested hierarchy compliant and recommended (Example provided below)
# proxmox__host > proxmox__group > proxmox__default
proxmox__all: "{{ proxmox__default | combine(proxmox__group, proxmox__host, recursive=true, list_merge='replace') }}"

__proxmox__purpose_packages: >-
{%- set proxmox_repos = [] -%}
{%- set proxmox_packages = [] -%}
{%- set purpose_packages = [] -%}
{%- if proxmox__manage_purpose_package_setup is defined and proxmox__manage_purpose_package_setup and proxmox__all.purposes is defined -%}
{%- for purpose in proxmox__purpose_names -%}
{%- for purpose_type in proxmox__purpose_types -%}
{%- set host_config = proxmox__all.purposes[purpose] if purpose in proxmox__all.purposes else none -%}
{%- set is_host_purpose = true if host_config else false -%}
{%- set is_host_purpose_type = true if host_config and host_config.type is defined and host_config.type == purpose_type else false -%}
{%- set host_purpose_version = host_config.version if host_config and host_config.version is defined else none -%}
{%- set purpose_repo_state = 'present' if is_host_purpose and is_host_purpose_type else 'absent' -%}
{%- set purpose_repo = proxmox__repo_url_enterprise if purpose_type == 'enterprise' else proxmox__repo_url_no_subscription -%}
{%- if purpose in ['pve', 'pbs', 'pmg'] -%}
{%- set proxmox_repos = proxmox_repos.append({
'type': 'repo',
'repo': 'deb ' + purpose_repo + '/' + purpose + ' ' + ansible_distribution_release + ' ' + purpose + '-' + purpose_type,
'filename': purpose + '-' + purpose_type,
'state': purpose_repo_state
}) -%}
{%- if host_purpose_version and proxmox__purpose_packages[purpose] is defined and not purpose in purpose_packages -%}
{%- set purpose_packages = purpose_packages.append(purpose) -%}
{%- set package_name = proxmox__purpose_packages[purpose] if host_purpose_version == 'latest' else proxmox__purpose_packages[purpose] + '=' + host_purpose_version -%}
{%- set package_state = 'latest' if host_purpose_version == 'latest' else 'present' -%}
{%- set proxmox_packages = proxmox_packages.append({
'type': 'package',
'name': package_name,
'state': package_state
}) -%}
{%- endif -%}
{%- elif purpose.startswith('ceph-') or purpose.startswith('ceph_') -%}
{%- set proxmox_repos = proxmox_repos.append({
'type': 'repo',
'repo': 'deb ' + purpose_repo + '/' + (purpose | replace('_', '-')) + ' ' + ansible_distribution_release + ' ' + purpose_type,
'filename': 'ceph',
'state': purpose_repo_state
}) -%}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- endif -%}
{{ proxmox_repos + proxmox_packages }}

0 comments on commit 2209d1b

Please sign in to comment.