initial commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
75891c3271
129 changed files with 8046 additions and 0 deletions
40
roles/provision/tasks/hetzner.yml
Normal file
40
roles/provision/tasks/hetzner.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
- name: Register SSH key with Hetzner
|
||||
hetzner.hcloud.ssh_key:
|
||||
name: "{{ admin_user }}"
|
||||
public_key: "{{ admin_ssh_key }}"
|
||||
api_token: "{{ hcloud_token }}"
|
||||
state: present
|
||||
|
||||
- name: Create server
|
||||
hetzner.hcloud.server:
|
||||
name: "{{ server_name }}"
|
||||
server_type: "{{ hcloud_server_type }}"
|
||||
image: "{{ hcloud_image }}"
|
||||
location: "{{ hcloud_location }}"
|
||||
ssh_keys:
|
||||
- "{{ admin_user }}"
|
||||
api_token: "{{ hcloud_token }}"
|
||||
state: present
|
||||
register: server_result
|
||||
|
||||
- name: Set server IP fact
|
||||
ansible.builtin.set_fact:
|
||||
server_ip: "{{ server_result.hcloud_server.ipv4_address }}"
|
||||
|
||||
- name: Wait for SSH to become available
|
||||
ansible.builtin.wait_for:
|
||||
host: "{{ server_ip }}"
|
||||
port: 22
|
||||
timeout: 300
|
||||
|
||||
- name: Update inventory with new IP
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ inventory_dir }}/hosts.yml"
|
||||
regexp: '^\s+ansible_host:'
|
||||
line: " ansible_host: {{ server_ip }}"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Print server IP
|
||||
ansible.builtin.debug:
|
||||
msg: "Server '{{ server_name }}' provisioned at {{ server_ip }}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue