From 3329694df2cc6603f91139be18f15f53385ac0de Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Sat, 22 Aug 2026 21:51:51 +0800 Subject: [PATCH] =?UTF-8?q?ansible:=20=E6=B7=BB=E5=8A=A0=20frp=20=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=AB=AF=E9=83=A8=E7=BD=B2=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible/playbooks/frps.yaml | 85 +++++++++++++++++++++++++++++++ ansible/templates/frps.service.j2 | 13 +++++ ansible/templates/frps.toml.j2 | 14 +++++ ansible/vars/vault.yaml | 37 +++++++++----- 4 files changed, 136 insertions(+), 13 deletions(-) create mode 100644 ansible/playbooks/frps.yaml create mode 100644 ansible/templates/frps.service.j2 create mode 100644 ansible/templates/frps.toml.j2 diff --git a/ansible/playbooks/frps.yaml b/ansible/playbooks/frps.yaml new file mode 100644 index 0000000..35ec5fe --- /dev/null +++ b/ansible/playbooks/frps.yaml @@ -0,0 +1,85 @@ +--- +- 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_local_archive: "/tmp/frp_{{ frp_version }}_linux_amd64.tar.gz" + frp_local_tmp_dir: "/tmp/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: "/tmp/" + 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 diff --git a/ansible/templates/frps.service.j2 b/ansible/templates/frps.service.j2 new file mode 100644 index 0000000..2c7093a --- /dev/null +++ b/ansible/templates/frps.service.j2 @@ -0,0 +1,13 @@ +[Uint] +Description=Frp Server Service +After=network.target + +[Service] +Type=simple +Restart=on-failure +RestartSec=5s +ExecStart={{ frp_install_dir }}/frps -c {{ frp_config_dir }}/frps.toml +LimitNOFILE=1048576 + +[Install] +WantedBy=multi-user.target diff --git a/ansible/templates/frps.toml.j2 b/ansible/templates/frps.toml.j2 new file mode 100644 index 0000000..f027098 --- /dev/null +++ b/ansible/templates/frps.toml.j2 @@ -0,0 +1,14 @@ +bindPort = {{ vault_frps_bind_port }} + +vhostHTTPPort = {{ vault_frps_vhost_http_port }} +vhostHTTPSPort = {{ vault_frps_vhost_https_port }} + +auth.method = "token" +auth.token = "{{ vault_frps_token }}" + +webServer.addr = "0.0.0.0" +webServer.port = {{ vault_frps_dashboard_port }} +webServer.user = "{{ vault_frps_dashboard_user }}" +webServer.password = "{{ vault_frps_dashboard_password }}" + +log.to = "/var/log/frps.log" diff --git a/ansible/vars/vault.yaml b/ansible/vars/vault.yaml index c0192bb..266cf94 100644 --- a/ansible/vars/vault.yaml +++ b/ansible/vars/vault.yaml @@ -1,14 +1,25 @@ $ANSIBLE_VAULT;1.1;AES256 -33313937633334633738393933643562333861303332623836313735383561396636333034616662 -3239633666346235303830346135663362666533353363620a313930393362393536383063326135 -34363462633030646566643531316466373062343437643863306463626532663761643432366434 -3964623835393037310a366534643464626161353739383639386264613861326533616164656238 -38326565616131643131386338363036363765313434316661666535333434396337323039613735 -32393137393631613333356238613265663839666237623664373431383463323833326164373264 -33383765393236303263623861376366633862303366356638336363333135623437636133653664 -64336231333531363339656530393438343265643836363736646438373964313236366437383863 -64626638363935383664633739363732366461313566393533353333623565313766326231316263 -36383434313966373461616562353862613237666464653530643431326366353230333735306436 -32623434306462633830356637626262613131386238656665653831353137356565353539623365 -38656232323266346266313235343662646137626163653439616334656335383631396438386436 -3239 +61636265383264303933623962346361346339663364393133333235613736373561353863303237 +3565323065346438656438623061396164323136666531340a313238643033383537363439626136 +65646239663263336431353266316238623035666635623265643863353936363035343135326431 +6565373532396335330a316432393238353666646235353430343237653034326430653131313561 +32383865313634623131396661326365303833383734396632616664383363383935353935636137 +64666662663437633135316634333438313263643862386566353762313161623836373232336262 +65346131653362343164353739376266386336653331316433353431373334646665646130326437 +65356237383238323665633866333235383135653039633330336339393163356233333431323064 +33633130633936643265353332356664326562386565623765313064363431366365646162313464 +61306333663335616333316362393636383036313364363537393861353935376536343761386335 +32663364356336363139323138656238313366663062663235353838363864313732373830336565 +31643132633266346235323436353736373865633166646138333830653762366432353531393732 +65643061313261613633333236653864396634633931366432666161363730306563316266653464 +62366331613064633364373464613237383434343765653436323665363434383632363039303864 +65333934306531316435383635346130303637663636353039636361353132346231373062656631 +35616530643534396138356238626134666365316630666137616134393561366138386631636239 +39636538633164383863333431366463313566393131633463623665653264663865386663616632 +36636265313338396635303764633235376463643938663233393635613333623238636264323934 +36623561653764376134353534303166363833326136313161313531386239643263326663386432 +38353965663063393131666464353235316438333365303061303135383863376136653134396330 +63343230386332323232396136343030663563646366623137383334306161366232323964633562 +39626636366630363262643533323836333664376634313564613833343533656431353035316262 +33666137653762383937366237626130333437346165336466326539366566323834366161373265 +38323432653932666561