From c6d8951d2cdfd0dc264e7e8816fa4f55a34835c4 Mon Sep 17 00:00:00 2001 From: ogrechko Date: Sun, 28 Dec 2025 18:24:48 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20ansible/deploy=5Fall.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible/deploy_all.yml | 66 ++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/ansible/deploy_all.yml b/ansible/deploy_all.yml index 8d2deaa..700153e 100644 --- a/ansible/deploy_all.yml +++ b/ansible/deploy_all.yml @@ -1,47 +1,34 @@ --- -- name: Step 1 - Terraform Provisioning +- name: Stage 1 - Terraform Infrastructure hosts: localhost connection: local gather_facts: false become: false vars: tf_dir: "{{ playbook_dir }}/../terraform" - tasks: - name: Create terraform mirror config copy: dest: "/tmp/.terraformrc" content: | provider_installation { - network_mirror { - url = "https://terraform-mirror.yandexcloud.net/" - } - direct { - exclude = ["registry.terraform.io/*/*"] - } + network_mirror { url = "https://terraform-mirror.yandexcloud.net/" } + direct { exclude = ["registry.terraform.io/*/*"] } } - - name: Total Cleanup + - name: Cleanup old terraform files shell: "rm -rf .terraform .terraform.lock.hcl" args: chdir: "{{ tf_dir }}" - - name: Terraform Init - shell: terraform init -reconfigure -no-color - args: - chdir: "{{ tf_dir }}" - environment: - TF_CLI_CONFIG_FILE: "/tmp/.terraformrc" - TF_HTTP_ADDRESS: "{{ lookup('env', 'TF_HTTP_ADDRESS') }}" - 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 -lock=false + - name: Terraform Init and Apply + shell: | + terraform init -reconfigure -no-color && \ + terraform apply -auto-approve -no-color -lock=false args: chdir: "{{ tf_dir }}" register: tf_result - ignore_errors: true # <--- ДОБАВЬТЕ ЭТО, чтобы Ansible не останавливался, после создания вм на проксмокс + ignore_errors: true environment: TF_CLI_CONFIG_FILE: "/tmp/.terraformrc" TF_HTTP_ADDRESS: "{{ lookup('env', 'TF_HTTP_ADDRESS') }}" @@ -51,38 +38,35 @@ TF_VAR_proxmox_api_token_secret: "{{ lookup('env', 'TF_VAR_proxmox_api_token_secret') }}" TF_VAR_proxmox_api_url: "{{ lookup('env', 'TF_VAR_proxmox_api_url') }}" - - name: Show Apply Output - debug: - var: tf_result.stdout_lines + - name: Add Master to memory + add_host: + name: "k8s-master" + groups: ["masters_group", "k8s_nodes"] + ansible_host: "10.33.33.201" + ansible_user: "ubuntu" + ansible_ssh_extra_args: "-o StrictHostKeyChecking=no" - - name: Dynamically add hosts to inventory + - name: Add Workers to memory add_host: name: "{{ item.name }}" - groups: - - k8s_new_nodes - - "{{ 'masters' if 'master' in item.name else 'workers' }}" + groups: ["workers_group", "k8s_nodes"] ansible_host: "{{ item.ip }}" - ansible_user: ubuntu + ansible_user: "ubuntu" ansible_ssh_extra_args: "-o StrictHostKeyChecking=no" loop: - - { name: 'k8s-master', ip: '10.33.33.201' } - { name: 'k8s-worker-1', ip: '10.33.33.202' } - { name: 'k8s-worker-2', ip: '10.33.33.203' } -- name: Step 2 - Wait for SSH - hosts: k8s_new_nodes +- name: Stage 2 - Wait for SSH + hosts: k8s_nodes gather_facts: false tasks: - - name: Wait for SSH to be ready + - name: Wait for connection wait_for_connection: - delay: 10 timeout: 300 -- name: Step 3 - K8s Setup +- name: Stage 3 - Install K8s import_playbook: k8s_setup.yml -- name: Step 4 - change password - import_playbook: change_password.yml - -- name: Stage 5 - Post-install (Network & Storage) - import_playbook: k8s_post_install.yml \ No newline at end of file +- name: Stage 4 - Final Config + import_playbook: k8s_post_install.yml \ No newline at end of file