add ansible role
This commit is contained in:
61
ansible/roles/deploy_vms/tasks/deploy_servers.yml
Normal file
61
ansible/roles/deploy_vms/tasks/deploy_servers.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
|
||||
- name: Серверы - Клонирование ВМ из шаблона
|
||||
community.general.proxmox_kvm:
|
||||
node: "{{ node }}"
|
||||
name: "{{ item.value.name }}"
|
||||
newid: "{{ item.value.vmid }}"
|
||||
api_user: "{{ api_user }}"
|
||||
api_password: "{{ api_password }}"
|
||||
api_host: "{{ api_host }}"
|
||||
clone: "{{ server_template }}"
|
||||
storage: "{{ pve_storage }}"
|
||||
format: qcow2
|
||||
timeout: 500
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Настройка IP адресов
|
||||
command: "qm set {{ item.value.vmid }} --ipconfig0 gw={{ item.value.gw }},ip={{ item.value.ip }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Настройка DNS
|
||||
command: "qm set {{ item.value.vmid }} --nameserver {{ item.value.dns }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Создание пользователя root
|
||||
command: "qm set {{ item.value.vmid }} --ciuser {{ vm_user }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Создание пароля пользователя root
|
||||
command: "qm set {{ item.value.vmid }} --cipassword {{ vm_password }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Копирование SSH ключей в ВМ
|
||||
command: "qm set {{ item.value.vmid }} --sshkey {{ key_name }}"
|
||||
args:
|
||||
chdir: ~/.ssh
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Обновление параметров ВМ
|
||||
community.general.proxmox_kvm:
|
||||
api_host: "{{ api_host }}"
|
||||
api_user: "{{ api_user }}"
|
||||
api_password: "{{ api_password }}"
|
||||
cores: "{{ item.value.cores }}"
|
||||
sockets: "{{ item.value.sockets }}"
|
||||
memory: "{{ item.value.memory }}"
|
||||
update: true
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
node: "{{ node }}"
|
||||
name: "{{ item.value.name }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Серверы - Запуск ВМ
|
||||
community.general.proxmox_kvm:
|
||||
api_host: "{{ api_host }}"
|
||||
api_password: "{{ api_password }}"
|
||||
api_user: "{{ api_user }}"
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
node: "{{ node }}"
|
||||
state: started
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
61
ansible/roles/deploy_vms/tasks/deploy_ws.yml
Normal file
61
ansible/roles/deploy_vms/tasks/deploy_ws.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
|
||||
- name: Рабочая станция - Клонирование ВМ из шаблона
|
||||
community.general.proxmox_kvm:
|
||||
node: "{{ node }}"
|
||||
name: "{{ item.value.name }}"
|
||||
newid: "{{ item.value.vmid }}"
|
||||
api_user: "{{ api_user }}"
|
||||
api_password: "{{ api_password }}"
|
||||
api_host: "{{ api_host }}"
|
||||
clone: "{{ server_template }}"
|
||||
storage: "{{ pve_storage }}"
|
||||
format: qcow2
|
||||
timeout: 500
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Настройка IP адресов
|
||||
command: "qm set {{ item.value.vmid }} --ipconfig0 gw={{ item.value.gw }},ip={{ item.value.ip }}"
|
||||
loop: "{{ lookup('dict', server_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Настройка DNS
|
||||
command: "qm set {{ item.value.vmid }} --nameserver {{ item.value.dns }}"
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Создание пользователя root
|
||||
command: "qm set {{ item.value.vmid }} --ciuser {{ vm_user }}"
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Создание пароля пользователя root
|
||||
command: "qm set {{ item.value.vmid }} --cipassword {{ vm_password }}"
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Копирование SSH ключей в ВМ
|
||||
command: "qm set {{ item.value.vmid }} --sshkey {{ key_name }}"
|
||||
args:
|
||||
chdir: ~/.ssh
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Обновление параметров ВМ
|
||||
community.general.proxmox_kvm:
|
||||
api_host: "{{ api_host }}"
|
||||
api_user: "{{ api_user }}"
|
||||
api_password: "{{ api_password }}"
|
||||
cores: "{{ item.value.cores }}"
|
||||
sockets: "{{ item.value.sockets }}"
|
||||
memory: "{{ item.value.memory }}"
|
||||
update: true
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
node: "{{ node }}"
|
||||
name: "{{ item.value.name }}"
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
|
||||
- name: Рабочая станция - Запуск ВМ
|
||||
community.general.proxmox_kvm:
|
||||
api_host: "{{ api_host }}"
|
||||
api_password: "{{ api_password }}"
|
||||
api_user: "{{ api_user }}"
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
node: "{{ node }}"
|
||||
state: started
|
||||
loop: "{{ lookup('dict', ws_vms) }}"
|
||||
7
ansible/roles/deploy_vms/tasks/main.yml
Normal file
7
ansible/roles/deploy_vms/tasks/main.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- name: Создание серверной группировки
|
||||
include_tasks: tasks/deploy_servers.yml
|
||||
|
||||
- name: Создание клиентских рабочих станций
|
||||
include_tasks: tasks/deploy_ws.yml
|
||||
Reference in New Issue
Block a user