diff options
Diffstat (limited to 'ansible/roles')
-rw-r--r-- | ansible/roles/proxmox_vm/tasks/set_network.yaml | 52 | ||||
-rw-r--r-- | ansible/roles/proxmox_vm/tasks/upload_files.yaml | 1 | ||||
-rw-r--r-- | ansible/roles/srv01/tasks/join_domain.yaml | 4 | ||||
-rw-r--r-- | ansible/roles/srv01/tasks/main.yaml | 14 | ||||
-rw-r--r-- | ansible/roles/srv01/tasks/reboot.yaml | 5 | ||||
-rw-r--r-- | ansible/roles/srv01/tasks/set_hostname.yaml | 5 | ||||
-rw-r--r-- | ansible/roles/srv01/templates/static_ip_netplan.yaml.j2 | 10 |
7 files changed, 90 insertions, 1 deletions
diff --git a/ansible/roles/proxmox_vm/tasks/set_network.yaml b/ansible/roles/proxmox_vm/tasks/set_network.yaml index 20ab31c..fb088ad 100644 --- a/ansible/roles/proxmox_vm/tasks/set_network.yaml +++ b/ansible/roles/proxmox_vm/tasks/set_network.yaml @@ -1,5 +1,5 @@ --- -- name: "vmid {{ clone_result.vmid }}: set up static ip address" +- name: "vmid {{ clone_result.vmid }}: set up static ip address on windows" win_shell: | Start-Transcript -Path C:\set_domain_network_log.txt -Append Get-NetIpAddress -InterfaceAlias 'Ethernet' | Remove-NetIPAddress -Confirm:$false @@ -10,6 +10,56 @@ async: 15 poll: 0 delegate_to: "{{ vm_ip }}" + when: os_type == 'windows' + vars: + ansible_connection: "{{ win_connector }}" + ansible_user: "{{ default_win_username }}" + ansible_password: "{{ default_win_password }}" + ansible_port: "{{ win_port }}" + ansible_winrm_transport: basic + ansible_winrm_server_cert_validation: ignore + +- name: "vmid {{ vmid }}: configure network for linux" + block: + - name: "vmid {{ vmid }}: get default interface" + ansible.builtin.shell: ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\).*/\1/p' + register: interface_result + + - name: "vmid {{ vmid }}: set default interface variable" + ansible.builtin.set_fact: + linux_interface_name: "{{ interface_result.stdout }}" + netplan_ip_address: "{{ ip }}" + + - name: "vmid {{ vmid }}: find netplan configs in /etc/netplan" + ansible.builtin.find: + paths: /etc/netplan + recurse: yes + register: yaml_configs + + - name: "vmid {{ vmid }}: remove all netplan configs in /etc/netplan" + ansible.builtin.file: + path: "{{ item.path }}" + state: absent + loop: "{{ yaml_configs.files }}" + + - name: "vmid {{ vmid }}: set netplan static ip address" + ansible.builtin.template: + src: static_ip_netplan.yaml.j2 + dest: /etc/netplan/01-netcfg.yaml + mode: '0644' + + - name: "vmid {{ vmid }}: apply netplan configuration" + ansible.builtin.command: netplan apply + async: 15 + poll: 0 + delegate_to: "{{ vm_ip }}" + when: os_type == 'linux' + vars: + ansible_connection: "{{ linux_connector }}" + ansible_user: "{{ default_linux_username }}" + ansible_password: "{{ default_linux_password }}" + ansible_port: "{{ linux_port }}" + ansible_host_key_checking: false - name: "vmid {{ clone_result.vmid }}: update ip to {{ ip }}" set_fact: diff --git a/ansible/roles/proxmox_vm/tasks/upload_files.yaml b/ansible/roles/proxmox_vm/tasks/upload_files.yaml index 651d203..f2b9df8 100644 --- a/ansible/roles/proxmox_vm/tasks/upload_files.yaml +++ b/ansible/roles/proxmox_vm/tasks/upload_files.yaml @@ -7,3 +7,4 @@ - { src: ../../../scripts/, dest: C:\scripts\ } - { src: ../../../files/software/, dest: C:\software\ } delegate_to: "{{ ansible_host }}" + when: os_type == 'windows' diff --git a/ansible/roles/srv01/tasks/join_domain.yaml b/ansible/roles/srv01/tasks/join_domain.yaml new file mode 100644 index 0000000..cd9b4f5 --- /dev/null +++ b/ansible/roles/srv01/tasks/join_domain.yaml @@ -0,0 +1,4 @@ +- name: "{{ main_linux_srv01_hostname }}.{{ main_domain_name }}: execute join-domain.sh" + script: ../../../scripts/join-domain.sh -d "{{ main_domain_name }}" -n "{{ main_dc01_ip_address }}" -p "{{ default_win_password }}" + args: + executable: /bin/bash diff --git a/ansible/roles/srv01/tasks/main.yaml b/ansible/roles/srv01/tasks/main.yaml new file mode 100644 index 0000000..06f6974 --- /dev/null +++ b/ansible/roles/srv01/tasks/main.yaml @@ -0,0 +1,14 @@ +- name: wait for ssh to be available + ansible.builtin.wait_for: + host: "{{ ansible_host }}" + port: "{{ ansible_port }}" + timeout: 300 + delegate_to: localhost + vars: + ansible_connection: local + +- name: set hostname + import_tasks: set_hostname.yaml + +- name: execute join-domain.sh + import_tasks: join_domain.yaml diff --git a/ansible/roles/srv01/tasks/reboot.yaml b/ansible/roles/srv01/tasks/reboot.yaml new file mode 100644 index 0000000..29ea4b0 --- /dev/null +++ b/ansible/roles/srv01/tasks/reboot.yaml @@ -0,0 +1,5 @@ +- name: "{{ main_linux_srv01_hostname }}.{{ main_domain_name }}: reboot" + command: "shutdown -r now &" + async: 1 + poll: 0 + ignore_errors: true diff --git a/ansible/roles/srv01/tasks/set_hostname.yaml b/ansible/roles/srv01/tasks/set_hostname.yaml new file mode 100644 index 0000000..40a9a8e --- /dev/null +++ b/ansible/roles/srv01/tasks/set_hostname.yaml @@ -0,0 +1,5 @@ +- name: "{{ main_linux_srv01_hostname }}.{{ main_domain_name }}: update /etc/hosts" + ansible.builtin.replace: + path: /etc/hosts + regexp: "ubuntu-server2404" + replace: "{{ main_linux_srv01_hostname }}.{{ main_domain_name }} {{ main_linux_srv01_hostname }}" diff --git a/ansible/roles/srv01/templates/static_ip_netplan.yaml.j2 b/ansible/roles/srv01/templates/static_ip_netplan.yaml.j2 new file mode 100644 index 0000000..03463b1 --- /dev/null +++ b/ansible/roles/srv01/templates/static_ip_netplan.yaml.j2 @@ -0,0 +1,10 @@ +network: + version: 2 + ethernets: + {{ linux_interface_name }}: + addresses: + - {{ netplan_ip_address }}/24 + gateway4: {{ network_gateway }} + nameservers: + addresses: + - {{ main_dc01_ip_address }} |