Files
dotfiles/ansible/playbooks/frps.yaml

87 lines
2.3 KiB
YAML

---
- name: 配置 frps 服务端
hosts: vps_debian
gather_facts: false
become: true
vars:
frp_version: "0.71.0"
frp_download_url: "https://github.com/fatedier/frp/releases/download/v{{ frp_version }}/frp_{{ frp_version }}_linux_amd64.tar.gz"
frp_tmp_dir: "{{ playbook_dir }}/../tmp"
frp_local_archive: "{{ frp_tmp_dir }}/frp_{{ frp_version }}_linux_amd64.tar.gz"
frp_local_tmp_dir: "{{ frp_tmp_dir }}/frp_{{ frp_version }}_linux_amd64"
frp_install_dir: "/opt/frp"
frp_config_dir: "/etc/frp"
vars_files:
- ../vars/vault.yaml
tasks:
- name: 创建 frp 目录
file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- "{{ frp_install_dir }}"
- "{{ frp_config_dir }}"
- name: 检查本地是否已有该版本的压缩包
stat:
path: "{{ frp_local_archive }}"
register: local_archive
delegate_to: localhost
run_once: true
- name: 下载 frp 压缩包到本地
get_url:
url: "{{ frp_download_url }}"
dest: "{{ frp_local_archive }}"
timeout: 60
delegate_to: localhost
run_once: true
become: false
when: not local_archive.stat.exists
- name: 解压 frp 压缩包到本地
unarchive:
src: "{{ frp_local_archive }}"
dest: "{{ frp_tmp_dir }}"
creates: "{{ frp_local_tmp_dir }}"
delegate_to: localhost
run_once: true
become: false
when: not local_archive.stat.exists
- name: 复制 frps 二进制文件到目标机器
copy:
src: "{{ frp_local_tmp_dir }}/frps"
dest: "{{ frp_install_dir }}/frps"
mode: '0755'
notify: restart frps
- name: 生成 frps.toml 配置文件
template:
src: ../templates/frps.toml.j2
dest: "{{ frp_config_dir }}/frps.toml"
mode: '0644'
notify: restart frps
- name: 创建 frps 的 systemd 服务文件
template:
src: ../templates/frps.service.j2
dest: /etc/systemd/system/frps.service
mode: '0644'
notify: restart frps
- name: 启用并启动 frps 服务
systemd:
name: frps
enabled: true
state: started
daemon_reload: true
handlers:
- name: restart frps
systemd:
name: frps
state: restarted