46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ```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
 | |
| ``` |