playbook.yml
---
- name: Deploy frp
hosts: target_server
become: true
tasks:
- name: Create destination directory
file:
path: /home/zxl/frp
state: directory
mode: '0755'
- name: Copy frp archive
copy:
src: frp_0.51.3_linux_amd64.tar.gz
dest: /home/zxl/frp/frp_0.51.3_linux_amd64.tar.gz
remote_src: no
mode: '777'
- name: Extract frp archive
become_user: root
unarchive:
src: /home/zxl/frp/frp_0.51.3_linux_amd64.tar.gz
dest: /home/zxl/frp
remote_src: yes
- name: Modify frpc.ini remote_port
lineinfile:
path: /home/zxl/frp/frp_0.51.3_linux_amd64/frpc.ini
regexp: '^remote_port = '
line: 'remote_port = {{ remote_port }}'
- name: Modify frpc.ini server_addr
lineinfile:
path: /home/zxl/frp/frp_0.51.3_linux_amd64/frpc.ini
regexp: '^server_addr = '
line: 'server_addr = {{ server_addr }}'
- name: Modify frpc.ini server_port
lineinfile:
path: /home/zxl/frp/frp_0.51.3_linux_amd64/frpc.ini
regexp: '^server_port = '
line: 'server_port = {{ server_port }}'
- name: Copy frpc.service
copy:
src: frpc.service
dest: /etc/systemd/system/frpc.service
mode: '0644'
owner: root
group: root
- name: Start frpc.service
systemd:
name: frpc.service
state: restarted
enabled: yes
hosts.ini
[target_server]
192.168.103.253 server_addr=公网IP server_port=公网port remote_port=8066 ansible_user=root ansible_user_password=xxx
192.168.103.250 server_addr=公网IP server_port=公网port remote_port=8060 ansible_user=root ansible_user_password=xxx
192.168.103.222 server_addr=公网IP server_port=公网port remote_port=8061 ansible_user=root ansible_user_password=xxx
frp.tar.gz
安装包下载地址:
https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
frpc.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/zxl/frp/frp_0.51.3_linux_amd64/frpc -c /home/zxl/frp/frp_0.51.3_linux_amd64/frpc.ini
[Install]
WantedBy = multi-user.target
start.sh
开始安装:
ansible-playbook -i hosts.ini playbook.yml