48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# 3A-deploy-additional-controlplane.yml
|
|
|
|
```jsx title="3A-deploy-additional-controlplane.yml"
|
|
---
|
|
- name: RKE2 Kubernetes Cluster Deployment
|
|
hosts: all
|
|
become: yes
|
|
tasks:
|
|
- name: Download and install RKE2 server
|
|
shell: "curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE=server sh -"
|
|
|
|
- name: Symlink the Kubectl Management Command
|
|
command: "ln -s {{ item }} /usr/local/bin/kubectl"
|
|
args:
|
|
creates: "/usr/local/bin/kubectl"
|
|
with_items:
|
|
- "{{ find_kubectl.stdout }}"
|
|
vars:
|
|
find_kubectl:
|
|
cmd: "find /var/lib/rancher/rke2/data/ -name kubectl"
|
|
|
|
- name: Create Rancher-Kubernetes-specific config directory
|
|
file:
|
|
path: "/etc/rancher/rke2/"
|
|
state: directory
|
|
|
|
- name: Inject IP of Primary Cluster Host (First Node) into Config File
|
|
lineinfile:
|
|
path: "/etc/rancher/rke2/config.yaml"
|
|
line: "server: https://192.168.3.21:9345"
|
|
|
|
- name: Get the node token from the first node in the cluster
|
|
shell: "cat /var/lib/rancher/rke2/server/node-token"
|
|
register: node_token
|
|
run_once: true
|
|
when: "'first_node' in group_names"
|
|
|
|
- name: Inject the Primary Cluster Host trust token into the config file
|
|
lineinfile:
|
|
path: "/etc/rancher/rke2/config.yaml"
|
|
line: "token: {{ node_token.stdout }}"
|
|
|
|
- name: Enable and start the RKE2 server service
|
|
systemd:
|
|
name: rke2-server.service
|
|
state: started
|
|
enabled: yes
|
|
``` |