Обновить ansible/deploy_all.yml

This commit is contained in:
2025-12-28 08:36:53 +00:00
parent 454e914566
commit dc51f51bef

View File

@@ -3,11 +3,12 @@
hosts: localhost
connection: local
gather_facts: true
vars:
tf_dir: "{{ playbook_dir }}/../terraform"
tasks:
- name: Create terraform mirror config in HOME
- name: Create terraform mirror config
copy:
dest: "{{ ansible_user_dir }}/.terraformrc"
mode: '0644'
content: |
provider_installation {
network_mirror {
@@ -20,35 +21,43 @@
- name: Cleanup old terraform data
file:
path: "{{ playbook_dir }}/../terraform/.terraform"
path: "{{ tf_dir }}/.terraform"
state: absent
- name: Run Terraform Apply
community.general.terraform:
project_path: "{{ playbook_dir }}/../terraform"
state: present
force_init: true
- name: Terraform Init
shell: terraform init -reconfigure -no-color
args:
chdir: "{{ tf_dir }}"
environment:
TF_CLI_CONFIG_FILE: "{{ ansible_user_dir }}/.terraformrc"
# Эти переменные Semaphore должен передать в Ansible
TF_HTTP_USERNAME: "{{ lookup('env', 'TF_HTTP_USERNAME') }}"
TF_HTTP_PASSWORD: "{{ lookup('env', 'TF_HTTP_PASSWORD') }}"
- name: Terraform Apply
shell: terraform apply -auto-approve -no-color
args:
chdir: "{{ tf_dir }}"
environment:
TF_CLI_CONFIG_FILE: "{{ ansible_user_dir }}/.terraformrc"
# Передаем токены Proxmox в Terraform
TF_VAR_proxmox_api_token_id: "{{ lookup('env', 'TF_VAR_proxmox_api_token_id') }}"
TF_VAR_proxmox_api_token_secret: "{{ lookup('env', 'TF_VAR_proxmox_api_token_secret') }}"
- name: Wait for SSH to be ready
wait_for:
host: "{{ item }}"
host: "{{ item.value.ip }}"
port: 22
state: started
timeout: 300
loop:
- 10.33.33.201
- 10.33.33.202
- 10.33.33.203
loop: "{{ lookup('dict', vm_nodes | default({})) }}" # Используем переменные из TF если нужно
- name: Step 2 - Install Kubernetes
hosts: all
# Теперь мы переключаемся на реальные сервера.
# Чтобы это сработало в одном шаблоне,
# в Semaphore должен быть выбран Inventory со всеми хостами,
# НО в первом Play мы принудительно используем localhost.
become: true
tasks:
- name: Install base packages
apt:
name: [curl, apt-transport-https]
state: present
name: [curl, apt-transport-https, qemu-guest-agent]
state: present
update_cache: yes