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 }}"

效果:

 

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

posted @ 2022-07-06 19:17  GEGEWU-  阅读(420)  评论(0)    收藏  举报