goodnight
This commit is contained in:
@@ -1 +0,0 @@
|
||||
H3sVxt9kbuoXGvG
|
||||
@@ -4,9 +4,6 @@
|
||||
gather_facts: true
|
||||
become: true
|
||||
|
||||
collections:
|
||||
- somaz94.ansible_k8s_iac_tool
|
||||
|
||||
tasks:
|
||||
# - Update all packages
|
||||
# - Install ansible-core
|
||||
@@ -26,18 +23,21 @@
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Download terraform
|
||||
ansible.builtin.get_url:
|
||||
url: https://releases.hashicorp.com/terraform/terraform_{{ terraform_version }}/terraform_{{ terraform_version }}_{{ ansible_facts.ansible_os_family }}_{{ ansible_facts.ansible_architecture }}.zip
|
||||
dest: /tmp/terraform.zip
|
||||
mode: 0755
|
||||
- name: Register status of /usr/local/bin/terraform
|
||||
ansible.builtin.stat:
|
||||
path: /usr/local/bin/terraform
|
||||
register: terraform_path
|
||||
|
||||
- name: Install terraform
|
||||
ansible.builtin.package:
|
||||
name: terraform
|
||||
state: present
|
||||
become: true
|
||||
- name: Download and installt erraform version
|
||||
when: not terraform_path.stat.exists
|
||||
block:
|
||||
- name: Download and install terraform
|
||||
ansible.builtin.unarchive:
|
||||
src: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_linux_amd64.zip"
|
||||
dest: "/usr/local/bin/"
|
||||
remote_src: true
|
||||
mode: '0755'
|
||||
exclude: "LICENSE.txt"
|
||||
|
||||
roles:
|
||||
- install_kustomize
|
||||
|
||||
- somaz94.ansible_k8s_iac_tool.install_kustomize
|
||||
|
||||
@@ -1,40 +1,46 @@
|
||||
---
|
||||
# file: dns-entry.yml
|
||||
|
||||
- name: Master playbook for home lab
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Create DNS entry for {{ inventory_hostname }}
|
||||
when: ip_address is defined
|
||||
delegate_to: "{{ dns_server }}"
|
||||
block:
|
||||
- name: Check if terraform directory exists
|
||||
- name: Check if terraform directory exists
|
||||
ansible.builtin.stat:
|
||||
path: ~/homelab/terraform/dns
|
||||
path: homelab/terraform/dns
|
||||
register: terraform_dir
|
||||
|
||||
- name: Create Terraform directory for DNS entries
|
||||
- name: Create Terraform directory for DNS entries
|
||||
ansible.builtin.file:
|
||||
path: ~/homelab/terraform/dns
|
||||
path: homelab/terraform/dns
|
||||
state: directory
|
||||
mode: '0755'
|
||||
when: not terraform_dir.stat.exists
|
||||
|
||||
- name: Create Terraform file for host
|
||||
- name: "Create/Update Terraform DNS provider"
|
||||
ansible.builtin.template:
|
||||
src: templates/dns.tf.j2
|
||||
dest: ~/homelab/terraform/dns/{{ inventory_hostname }}.tf
|
||||
src: templates/dns_provider.tf.j2
|
||||
dest: homelab/terraform/dns/provider.tf
|
||||
mode: '0644'
|
||||
|
||||
handlers:
|
||||
- name: Update DNS entries via Terraform
|
||||
delegate_to: "{{ dns_server }}"
|
||||
community.general.terraform:
|
||||
project_path: ~/homelab/terraform/dns/
|
||||
variables:
|
||||
freeipa_server: "{{ dns_server }}"
|
||||
freeipa_admin: "{{ dns_admin }}"
|
||||
freeipa_password: "{{ vault_freeipa_password }}"
|
||||
state: present
|
||||
force_init: true
|
||||
- name: Show all the hosts in the inventory
|
||||
when: "{{ hostvars[groups['all'][ {{ item }} ]['ip_address'] }}" is defined
|
||||
ansible.builtin.debug:
|
||||
msg: "{{ hostvars[item].ip_address }}"
|
||||
loop: "{{ query('inventory_hostnames', 'all') }}"
|
||||
|
||||
# - name: Loop through all hosts
|
||||
# block:
|
||||
# - name: Create Terraform files for all eligible hosts
|
||||
# when: "{{hostvars["{{ item }}"].ip_address}}" is defined
|
||||
# ansible.builtin.template:
|
||||
# src: templates/dns.tf.j2
|
||||
# dest: homelab/terraform/dns/{{ item }}.tf
|
||||
# mode: '0644'
|
||||
# loop: "{{ query('inventory_hostnames', 'all') }}"
|
||||
|
||||
# - name: Update DNS entries via Terraform
|
||||
# community.general.terraform:
|
||||
# project_path: homelab/terraform/dns/
|
||||
# variables:
|
||||
# freeipa_server: "{{ dns_server }}"
|
||||
# freeipa_admin: "{{ dns_admin }}"
|
||||
# freeipa_password: "{{ vault_freeipa_password }}"
|
||||
# state: present
|
||||
# force_init: true
|
||||
|
||||
11
homelab/terraform/dns/ocp-hub.tf
Normal file
11
homelab/terraform/dns/ocp-hub.tf
Normal file
@@ -0,0 +1,11 @@
|
||||
// Terraform DNS entry template
|
||||
|
||||
resource "freeipa_dns_record" "ocp-hub" {
|
||||
zone_name = "int.mk-labs.cloud."
|
||||
name = "ocp-hub"
|
||||
type = "A"
|
||||
records = [
|
||||
"10.1.71.10",
|
||||
]
|
||||
ttl = 60
|
||||
}
|
||||
11
homelab/terraform/dns/pve01.tf
Normal file
11
homelab/terraform/dns/pve01.tf
Normal file
@@ -0,0 +1,11 @@
|
||||
// Terraform DNS entry template
|
||||
|
||||
resource "freeipa_dns_record" "pve01" {
|
||||
zone_name = "int.mk-labs.cloud."
|
||||
name = "pve01"
|
||||
type = "A"
|
||||
records = [
|
||||
"10.1.71.51",
|
||||
]
|
||||
ttl = 60
|
||||
}
|
||||
11
host_vars/infra01/vars
Normal file
11
host_vars/infra01/vars
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
# file: host_vars/infra01/vars
|
||||
|
||||
# Networking
|
||||
# primary_interface: "enp1s0f0"
|
||||
# mac_address: "98:b7:85:1e:c6:f1"
|
||||
#ip_address: 10.1.71.51
|
||||
hostname: "infra01.{{ base_domain }}"
|
||||
|
||||
# Software
|
||||
terraform_version: "1.11.3"
|
||||
17
site.yml
17
site.yml
@@ -3,12 +3,13 @@
|
||||
|
||||
- name: Master playbook for home lab
|
||||
hosts: all
|
||||
gather_facts: true
|
||||
connection: local
|
||||
# roles:
|
||||
# - dns-entry
|
||||
gather_facts: false
|
||||
|
||||
# tasks:
|
||||
|
||||
- name: Process DNS entries
|
||||
ansible.builtin.import_playbook: dns-entry.yml
|
||||
tasks:
|
||||
- name: Process DNS entries
|
||||
when: inventory_hostname == "infra01"
|
||||
ansible.builtin.import_tasks:
|
||||
file: dns-entry.yml
|
||||
tags:
|
||||
- update-dns
|
||||
- never
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Configure the DNS Provider
|
||||
provider "freeipa" {
|
||||
host = "infra01.int.mk-labs.cloud"
|
||||
username = "admin"
|
||||
host = var.freeipa_server
|
||||
username = var.freeipa_admin
|
||||
password = var.freeipa_password
|
||||
insecure = true
|
||||
}
|
||||
30
test.yml
30
test.yml
@@ -1,22 +1,26 @@
|
||||
---
|
||||
- name: Run all tasks necessary to configure matchbox to install the cluster
|
||||
hosts: matchbox
|
||||
connection: local
|
||||
hosts: infra01
|
||||
#connection: local
|
||||
gather_facts: true
|
||||
|
||||
tasks:
|
||||
- name: Print vars for debugging
|
||||
ansible.builtin.debug:
|
||||
msg: System {{ hostvars['infra01'].matchbox_assets }} / {{ hostvars['ocp-hub'].cluster_name }}
|
||||
# - name: Print vars for debugging
|
||||
# ansible.builtin.debug:
|
||||
# msg: System {{ hostvars['infra01'].matchbox_assets }} / {{ hostvars['ocp-hub'].cluster_name }}
|
||||
|
||||
- name: Print vars for debugging 2
|
||||
ansible.builtin.debug:
|
||||
msg: System {{ groups }}
|
||||
# - name: Print vars for debugging 2
|
||||
# ansible.builtin.debug:
|
||||
# msg: System {{ groups }}
|
||||
|
||||
- name: Print vars for debugging 3
|
||||
ansible.builtin.debug:
|
||||
msg: System {{ groups['hub-cluster'][0] }}
|
||||
# - name: Print vars for debugging 3
|
||||
# ansible.builtin.debug:
|
||||
# msg: System {{ groups['hub-cluster'][0] }}
|
||||
|
||||
- name: Print vars for debugging 4
|
||||
# - name: Print vars for debugging 4
|
||||
# ansible.builtin.debug:
|
||||
# msg: System {{ hostvars[groups['hub-cluster'][0]].cluster_name }}
|
||||
|
||||
- name: Print all available facts
|
||||
ansible.builtin.debug:
|
||||
msg: System {{ hostvars[groups['hub-cluster'][0]].cluster_name }}
|
||||
var: ansible_facts
|
||||
Reference in New Issue
Block a user