ubtun20.04 smartping部署+docker+ansible部署并实现托管
一. 二进制:
1. 创建smartping存放目录&& 将smartping-v0.8.0.tar.gz 上传到此目录并解压
root@gegewu1:/opt# mkdir smartping

2. 在执行文件control目录执行启动命令
./control start|stop|restart

3. 建立托管文件采用systemctl的方式启动
vim /etc/systemd/system/smartping.service
cat <<EOF >/etc/systemd/system/smartping.service
[Unit]
Description="smartping"
After=network.target
[Service]
Type=simple
ExecStart=/opt/smartping/bin/smartping > /opt/smartping/bin/smartping.log &
WorkingDirectory=/opt/smartping/bin/
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable smartping
systemctl restart smartping
systemctl status smartping

注:smartping启动方式有两种在两个不同路径均能启动
1. 直接全路径启动:/opt/smartping/bin/smartping #此种启动方式建立托管文件成功
2. 常规启动: /opt/smartping/control #此种启动方式建立托管文件时不成功原因还不清楚
二. smartping改变端口+密码直接修改配置文件
文件:/opt/smartping/conf/config-base.json
常用配置说明: 此文件可改密码改默认端口
{
"Ver": "0.8.0",
"Port": 8899,
"Name": "本机",
"Addr": "127.0.0.1",
"Mode": {
"Endpoint": "",
"LastSuccTime": "",
"Status": "true",
"Type": "local"
},
"Base": {
"Archive": 10,
"Refresh": 1,
"Timeout": 5
},
"Topology": {
"Tline": "1",
"Tsound": "/alert.mp3",
"Tsymbolsize": "70"
},
"Alert": {
"EmailHost": "",
"RevcEmailList": "",
"SendEmailAccount": "",
"SendEmailPassword": ""
},
"Network": {
"1.1.1.1": {
"Name": "Cloudflare DNS",
"Addr": "1.1.1.1",
"Smartping": true,
"Ping": [],
"Topology": []
},
"113.98.58.56": {
"Name": "深圳电信",
"Addr": "113.98.58.56",
"Smartping": true,
"Ping": [],
"Topology": []
},
"119.29.29.29": {
"Name": "DNSPod DNS+",
"Addr": "119.29.29.29",
"Smartping": true,
"Ping": [],
"Topology": []
},
"119.96.138.226": {
"Name": "processon",
"Addr": "119.96.138.226",
"Smartping": true,
"Ping": [],
"Topology": []
},
"127.0.0.1": {
"Name": "本机",
"Addr": "127.0.0.1",
"Smartping": true,
"Ping": [
"113.98.58.56",
"180.76.76.76 ",
"223.6.6.6",
"35.221.154.146",
"8.8.8.8",
"119.29.29.29",
"1.1.1.1",
"9.9.9.9",
"119.96.138.226"
],
"Topology": [
{
"Addr": "35.221.154.146",
"Name": "AWS",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "113.98.58.56",
"Name": "深圳电信",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "223.6.6.6",
"Name": "阿里",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "180.76.76.76 ",
"Name": "百度",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "8.8.8.8",
"Name": "谷歌",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "119.29.29.29",
"Name": "DNSPod DNS+",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "1.1.1.1",
"Name": "Cloudflare DNS",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "9.9.9.9",
"Name": "IBM Quad9",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
},
{
"Addr": "119.96.138.226",
"Name": "processon",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"180.76.76.76 ": {
"Name": "百度",
"Addr": "180.76.76.76 ",
"Smartping": true,
"Ping": [],
"Topology": []
},
"223.6.6.6": {
"Name": "阿里",
"Addr": "223.6.6.6",
"Smartping": true,
"Ping": [],
"Topology": []
},
"35.221.154.146": {
"Name": "AWS",
"Addr": "35.221.154.146",
"Smartping": true,
"Ping": [],
"Topology": []
},
"8.8.8.8": {
"Name": "谷歌",
"Addr": "8.8.8.8",
"Smartping": true,
"Ping": [],
"Topology": []
},
"9.9.9.9": {
"Name": "IBM Quad9",
"Addr": "9.9.9.9",
"Smartping": true,
"Ping": [],
"Topology": []
}
},
"Chinamap": {
"上海": {
"cmcc": [
"117.184.42.114"
],
"ctcc": [
"180.163.15.160"
],
"cucc": [
"223.167.104.117"
]
},
"云南": {
"cmcc": [
"183.224.236.156"
],
"ctcc": [
"116.55.99.129"
],
"cucc": [
"221.3.207.78"
]
},
"内蒙古": {
"cmcc": [
"111.56.43.26"
],
"ctcc": [],
"cucc": [
"116.112.10.10"
]
},
"北京": {
"cmcc": [
"111.13.217.125"
],
"ctcc": [
"120.92.180.135",
"219.141.136.10",
"219.141.140.10"
],
"cucc": [
"202.106.196.115 ",
"202.106.46.151",
"202.106.0.20",
"202.106.195.68"
]
},
"台湾": {
"cmcc": [],
"ctcc": [
"168.95.1.1 ",
"168.95.192.1",
"168.95.192.2"
],
"cucc": []
},
"吉林": {
"cmcc": [
"219.149.194.55"
],
"ctcc": [
"219.149.194.55"
],
"cucc": [
"139.209.90.60"
]
},
"四川": {
"cmcc": [
"183.221.253.42"
],
"ctcc": [
"125.71.204.74"
],
"cucc": [
"119.6.197.206"
]
},
"天津": {
"cmcc": [],
"ctcc": [
"219.150.32.132"
],
"cucc": [
"202.99.104.68"
]
},
"宁夏": {
"cmcc": [
"120.253.6.92"
],
"ctcc": [
"202.100.96.68"
],
"cucc": [
"220.200.148.194"
]
},
"安徽": {
"cmcc": [
"211.138.180.2"
],
"ctcc": [
"61.132.163.68"
],
"cucc": []
},
"山东": {
"cmcc": [
"111.14.216.66"
],
"ctcc": [
"222.173.55.210"
],
"cucc": [
"60.216.20.189"
]
},
"山西": {
"cmcc": [
"111.53.153.78"
],
"ctcc": [
"59.49.42.135"
],
"cucc": [
"60.222.40.21"
]
},
"广东": {
"cmcc": [
"120.236.14.140"
],
"ctcc": [
"202.96.134.33"
],
"cucc": [
"58.252.2.194",
"210.21.196.6 ",
"221.5.88.88"
]
},
"广西": {
"cmcc": [
"111.59.168.3"
],
"ctcc": [
"222.83.136.138"
],
"cucc": [
"121.31.113.130"
]
},
"新疆": {
"cmcc": [
"221.181.53.4"
],
"ctcc": [
"219.151.36.46"
],
"cucc": [
"60.13.189.118"
]
},
"江苏": {
"cmcc": [
"58.240.74.98"
],
"ctcc": [
"49.65.121.176"
],
"cucc": [
"119.6.6.6"
]
},
"江西": {
"cmcc": [],
"ctcc": [
"202.101.224.69"
],
"cucc": [
"220.248.192.13"
]
},
"河北": {
"cmcc": [
"111.63.2.147"
],
"ctcc": [
"222.222.49.242"
],
"cucc": [
"202.99.166.4"
]
},
"河南": {
"cmcc": [
"211.142.101.66"
],
"ctcc": [
"219.150.188.237"
],
"cucc": [
"61.136.70.164"
]
},
"浙江": {
"cmcc": [
"183.246.69.139"
],
"ctcc": [
"115.236.169.86"
],
"cucc": [
"60.12.214.156"
]
},
"海南": {
"cmcc": [
"111.44.132.67"
],
"ctcc": [
"218.77.140.213"
],
"cucc": [
"150.255.228.12"
]
},
"湖北": {
"cmcc": [
"120.202.66.111"
],
"ctcc": [
"111.175.242.178"
],
"cucc": [
"219.140.62.34"
]
},
"湖南": {
"cmcc": [],
"ctcc": [
"222.246.129.80"
],
"cucc": []
},
"澳门": {
"cmcc": [
"202.175.3.3"
],
"ctcc": [
"202.175.3.3",
"202.175.3.8"
],
"cucc": []
},
"甘肃": {
"cmcc": [
"218.203.160.194",
"218.203.160.195"
],
"ctcc": [
"60.165.176.139"
],
"cucc": [
"115.85.246.62"
]
},
"福建": {
"cmcc": [],
"ctcc": [
"218.85.152.99"
],
"cucc": []
},
"西藏": {
"cmcc": [
"111.11.192.34"
],
"ctcc": [
"219.151.35.99"
],
"cucc": [
"221.13.74.148"
]
},
"贵州": {
"cmcc": [
"117.187.11.25"
],
"ctcc": [
"222.85.151.87"
],
"cucc": [
"111.85.152.144"
]
},
"辽宁": {
"cmcc": [
"223.100.1.79"
],
"ctcc": [
"59.46.77.186"
],
"cucc": [
"113.232.54.154"
]
},
"重庆": {
"cmcc": [
"218.201.4.3"
],
"ctcc": [
"61.128.192.68"
],
"cucc": [
"221.5.203.98"
]
},
"陕西": {
"cmcc": [
"218.200.6.139"
],
"ctcc": [
"61.185.14.232"
],
"cucc": [
"221.11.20.98"
]
},
"青海": {
"cmcc": [
"111.12.185.118"
],
"ctcc": [
"202.100.128.68"
],
"cucc": [
"221.207.21.53"
]
},
"香港": {
"cmcc": [
"203.80.96.10"
],
"ctcc": [
"14.199.252.50"
],
"cucc": [
"202.181.202.140"
]
},
"黑龙江": {
"cmcc": [
"218.203.11.103"
],
"ctcc": [
"219.150.32.132"
],
"cucc": [
"221.212.18.170"
]
}
},
"Toollimit": 0,
"Authiplist": "",
"Password": "smartping"
}
二. docker容器化部署
Dockerfile文件:
FROM centos:7
WORKDIR /smartping
ADD smartping-v0.8.0.tar.gz /smartping/
RUN chmod +x control
EXPOSE 8899
CMD ["/smartping/bin/smartping"]
构建镜像命令:
Dockerfile文件执行:
参数:
-f 指定文件目录
-t 命名空间
docker build -f /home/gegewu/mydocker/Dockerfile -t centos/smartping-1 .
运行容器:
docker run -d -p 8888:8899 --privileged=true --name smartping-v1 -v /home/gegewu/mydocker/smartping/config-base.json:/smartping/conf/config-base.json:rw centos/smartping-v1
进入容器:
docker exec it +ID sh
查看容器:
docker container ls --all
介绍容器持久化:
其中:config-base.json 文件示例代码见上
/home/gegewu/mydocker/smartping/config-base.json:/smartping/conf/config-base.json:rw
注:持久化配置文件:config-base.json 内容复制上面的运行后看效果
三. 采用docker-compose的方式编排
docker-compose.yml文件内容:
version: "3.0"
services:
smartping:
build:
context: .
dockerfile: Dockerfile
restart: always
container_name: smartping-v2
hostname: smartping-v2
ports:
- 8880:8899
volumes:
- /home/gegewu/mydocker/smartping/config-base.json:/smartping/conf/config-base.json
command: /smartping/bin/smartping
创建:docker-compose build
创建详情:
root@gegewu1:/home/gegewu/mydocker# docker-compose build
Building smartping
Step 1/6 : FROM centos:7
---> eeb6ee3f44bd
Step 2/6 : WORKDIR /smartping
---> Using cache
---> 306c910e14ec
Step 3/6 : ADD smartping-v0.8.0.tar.gz /smartping/
---> 4c8ec23fae8a
Step 4/6 : RUN chmod +x control
---> Running in f25dbcc33838
Removing intermediate container f25dbcc33838
---> 6e2a10675449
Step 5/6 : EXPOSE 8899
---> Running in eaac019fb75d
Removing intermediate container eaac019fb75d
---> b7de58724d80
Step 6/6 : CMD ["/smartping/bin/smartping"]
---> Running in c9a6967f19b8
Removing intermediate container c9a6967f19b8
---> d6ab26b8bc6a
Successfully built d6ab26b8bc6a
Successfully tagged mydocker_smartping:latest
root@gegewu1:/home/gegewu/mydocker# docker ps
运行:docker-compose up -d
运行详情:
root@gegewu1:/home/gegewu/mydocker# docker-compose up -d
Creating network "mydocker_default" with the default driver
Creating smartping-v2 ... done
root@gegewu1:/home/gegewu/mydocker# ls
docker ps

四. 采用自动化工具ansible配置smartping
#ansible 搭建smartping
#1. 将文件传输到远端机器
#2. 文件为:smartping-v0.8.0.tar.gz anaconda-ks.cfg
- hosts: 10.0.0.128
vars:
web_server: httpd
linux_dir: /home/gegewu/smartping
tasks:
- name: file
file: path="{{ linux_dir }}" state=directory owner=gegewu group=gegewu mode=777 recurse=yes
- name: unarchive
unarchive: src=./smartping-v0.8.0.zip dest="{{ linux_dir }}" mode=0777
- name: copy
copy: src=./anaconda-ks.cfg dest="{{ linux_dir }}" mode=0777
- name: 8899
firewalld:
zone: public
permanent: yes
immediate: yes
port: 8899/tcp
state: enabled
- name: start
shell: /"{{ linux_dir }}/control start"
- name: service
service: name=firewalld state=started enabled=yes
- name: web
shell: echo "浏览器访问本机ip:8899"
register: web_ip
- name: debug
debug:
msg: "{{ web_ip }}"
效果:



推送到远端阿里云私有仓库:


浙公网安备 33010602011771号