Created
September 23, 2020 08:05
-
-
Save vandot/65b23b144789ff6476338faf87e5c56e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: localhost | |
gather_facts: false | |
connection: local | |
tasks: | |
- name: Create ssh key | |
community.digitalocean.digital_ocean_sshkey: | |
oauth_token: "{{ oauth_token }}" | |
name: mykey | |
ssh_pub_key: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}" | |
state: present | |
register: ssh_key | |
- name: Create VMs | |
community.digitalocean.digital_ocean_droplet: | |
state: present | |
name: "{{ item }}" | |
oauth_token: "{{ oauth_token }}" | |
size: 2gb | |
region: fra1 | |
image: ubuntu-20-04-x64 | |
wait_timeout: 500 | |
ssh_keys: | |
- "{{ ssh_key.data.ssh_key.fingerprint }}" | |
tags: | |
- "k3sup" | |
register: vm_jobs | |
with_items: | |
- k3s-server | |
- k3s-agent1 | |
- k3s-agent2 | |
async: 120 | |
poll: 0 | |
- name: Wait for creation to finish | |
async_status: | |
jid: "{{ item.ansible_job_id }}" | |
register: vm | |
until: vm.finished | |
delay: 5 | |
retries: 15 | |
with_items: "{{ vm_jobs.results }}" | |
- name: Define server IP | |
set_fact: | |
server_ip: "{{ item['data']['ip_address'] }}" | |
when: item['data']['droplet']['name'] == 'k3s-server' | |
with_items: | |
- "{{ vm.results }}" | |
- name: Wait for SSH to come up | |
local_action: wait_for | |
host={{ server_ip }} | |
port=22 | |
state=started | |
- name: Install k3s server on k3s-server | |
vandot.k3sup.k3sup: | |
action: server | |
ip: "{{ server_ip }}" | |
ssh_key: "~/.ssh/id_ed25519" | |
- name: Install k3s agent on k3s-agents | |
vandot.k3sup.k3sup: | |
action: agent | |
ip: "{{ item['data']['ip_address'] }}" | |
server_ip: "{{ server_ip }}" | |
ssh_key: "~/.ssh/id_ed25519" | |
register: k3sup_jobs | |
when: item['data']['droplet']['name'] != 'k3s-server' | |
with_items: "{{ vm.results }}" | |
async: 120 | |
poll: 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment