85 行
2.1 KiB
YAML
85 行
2.1 KiB
YAML
# 基础配置 Role
|
|
# 功能: hostname、sysctl、Tailscale 安装
|
|
---
|
|
- name: Set hostname
|
|
ansible.builtin.hostname:
|
|
name: "{{ node_hostname }}"
|
|
when: node_hostname is defined
|
|
|
|
- name: Update /etc/hosts
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/hosts
|
|
regexp: '^127\.0\.1\.1'
|
|
line: "127.0.1.1 {{ node_hostname }}"
|
|
when: node_hostname is defined
|
|
|
|
- name: Configure sysctl for IP forwarding
|
|
ansible.builtin.copy:
|
|
dest: /etc/sysctl.d/99-k3s.conf
|
|
content: |
|
|
net.ipv4.ip_forward = 1
|
|
net.ipv6.conf.all.forwarding = 1
|
|
mode: "0644"
|
|
notify: Apply sysctl
|
|
|
|
- name: Install dependencies
|
|
ansible.builtin.apt:
|
|
name:
|
|
- curl
|
|
- wget
|
|
- ca-certificates
|
|
state: present
|
|
update_cache: true
|
|
|
|
- name: Check if Tailscale is installed
|
|
ansible.builtin.command: which tailscale
|
|
register: common_tailscale_check
|
|
failed_when: false
|
|
changed_when: false
|
|
|
|
- name: Check current Tailscale version
|
|
ansible.builtin.shell: tailscale version | head -1
|
|
register: common_tailscale_version
|
|
failed_when: false
|
|
changed_when: false
|
|
when: common_tailscale_check.rc == 0
|
|
|
|
- name: Set Tailscale install flag
|
|
ansible.builtin.set_fact:
|
|
tailscale_needs_install: "{{
|
|
common_tailscale_check.rc != 0 or
|
|
(common_tailscale_version.stdout | default('') is not search(tailscale_version))
|
|
}}"
|
|
|
|
- name: Download Tailscale install script
|
|
ansible.builtin.get_url:
|
|
url: https://tailscale.com/install.sh
|
|
dest: /tmp/tailscale-install.sh
|
|
mode: "0755"
|
|
when: common_tailscale_check.rc != 0
|
|
|
|
- name: Install Tailscale via install script
|
|
ansible.builtin.command: /tmp/tailscale-install.sh
|
|
when: common_tailscale_check.rc != 0
|
|
changed_when: true
|
|
|
|
- name: Install specific Tailscale version
|
|
ansible.builtin.apt:
|
|
name:
|
|
- "tailscale={{ tailscale_version }}"
|
|
- "tailscaled={{ tailscale_version }}"
|
|
state: present
|
|
allow_downgrade: true
|
|
when: tailscale_needs_install
|
|
|
|
- name: Remove Tailscale install script
|
|
ansible.builtin.file:
|
|
path: /tmp/tailscale-install.sh
|
|
state: absent
|
|
|
|
- name: Enable Tailscale service
|
|
ansible.builtin.systemd:
|
|
name: tailscaled
|
|
enabled: true
|
|
state: started
|