Centos7 中使用搭建devpi并且使用Supervisor守护进程
一、先介绍一下supervisor
1.安装supervisor
使用yum安装或者使用pip安装都可以,使用yum安装的相对简单一些,并且不用拷贝一份 supervisord.conf 的配置文件,在这里介绍一下pip安装的方式吧,我是后编译了一个python,执行下面一系列的命令:
/usr/local/python/bin/pip3 install supervisor ln -s /usr/local/python/bin/supervisorctl /usr/bin/ ln -s /usr/local/python/bin/supervisord /usr/bin/ mkdir /etc/supervisor
然后需要在这个文件中写入如下,都是固定的,直接拷贝即可:
vim /etc/supervisor/supervisord.conf
写入下面:
; Sample supervisor config file. ; ; For more information on the config file, please see: ; http://supervisord.org/configuration.html ; ; Notes: ; - Shell expansion ("~" or "$HOME") is not supported. Environment ; variables can be expanded using this syntax: "%(ENV_HOME)s". ; - Quotes around values are not supported, except in the case of ; the environment= options as shown below. ; - Comments must have a leading space: "a=b ;comment" not "a=b;comment". ; - Command will be truncated if it looks like a config file comment, e.g. ; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ". [unix_http_server] file=/var/run/supervisor.sock ; the path to the socket file [supervisord] logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/var/run/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=false ; start in foreground if true; default false minfds=1024 ; min. avail startup file descriptors; default 1024 minprocs=200 ; min. avail process descriptors;default 200 ; The rpcinterface:supervisor section must remain in the config file for ; RPC (supervisorctl/web interface) to work. Additional interfaces may be ; added by defining them in separate [rpcinterface:x] sections. [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ; The supervisorctl section configures how supervisorctl will connect to ; supervisord. configure it match the settings in either the unix_http_server ; or inet_http_server section. [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket ; The [include] section can just contain the "files" setting. This ; setting can list multiple files (separated by whitespace or ; newlines). It can also contain wildcards. The filenames are ; interpreted as relative to this file. Included files *cannot* ; include files themselves. [include] files = conf.d/*.conf
其中主要是红色,随后进行:
mkdir /etc/supervisor/conf.d cd /etc/supervisor/conf.d
之后就要编辑要监管的服务了,编辑写入:
vim /etc/supervisor/conf.d/devpi.conf
[program:devpi]
command=/usr/local/python/bin/devpi-server --port 3141 --host 10.213.X.X --serverdir /home/ops/devpi
directory=/home/ops/devpi
autostart=true
autorestart=true
startretries=3
user=root
stopasgroup=true
killasgroup=true
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /var/log/devpi-running.log
真正的模板对应改文件如下,并含解释:
[program:DeployLinux] #DeployLinux 为程序的名称 command=dotnet DeployLinux.dll #需要执行的命令 directory=/home/publish #命令执行的目录 environment=ASPNETCORE__ENVIRONMENT=Production #环境变量 user=root #用户 stopsignal=INT autostart=true #是否自启动 autorestart=true #是否自动重启 startsecs=3 #自动重启时间间隔(s) stderr_logfile=/var/log/ossoffical.err.log #错误日志文件 stdout_logfile=/var/log/ossoffical.out.log #输出日志文件
随后启动服务,即可:
supervisord -c /etc/supervisor/supervisord.conf
查看状态,以及重新启动命令如下:
supervisorctl status supervisorctl restart devpi
这一部分的内容大概就是这些,参考文章:https://www.cnblogs.com/wyt007/p/8288929.html
下面是devpi-server的相关内容:
二、安装devpi-server
这里同样是使用pip方式进行的安装,执行 pip install 该服务即可,安装成功后,可以使用如下命令查看版本:
/usr/local/python/bin/devpi-server --version
还需要安装其他几个相关包:
/usr/local/python/bin/pip3 install -q -U devpi-web /usr/local/python/bin/pip3 install -q -U devpi-client
然后需要重新启动一下devpi,执行:
/usr/local/python/bin/devpi-server --port 3141 --host 10.213.X.X --serverdir /home/ops/devpi --init
这里我创建了一个devops的用户:
/usr/local/python/bin/devpi user -c devops password=devops /usr/local/python/bin/devpi login devops --password=devops /usr/local/python/bin/devpi index -c devops bases=root/pypi /usr/local/python/bin/devpi use devops/devops /usr/local/python/bin/devpi index devops/devops mirror_url="https://pypi.doubanio.com/simple"
在我的 ~/.pip/pip.conf 中的为:
[global] index-url = https://pypi.doubanio.com/simple [search] index = https://pypi.doubanio.com/simple [install] trusted-host = 10.213.X.X #就是我的devpi的服务器
随后可以使用下面两个命令进行查看:
devpi use devpi index devpi index root/pypi mirror_url="https://pypi.doubanio.com/simple" 具体的记不太清楚了
下面进行测试看一看:
devpi login devops devpi use cd /tmp/filelock-3.0.10/ # 要上传的包目录下 devpi upload # 上传到devops索引下 devpi list filelock # 查看索引
这里有一篇参考文章,如:https://www.cnblogs.com/panhongyin/p/7065830.html