• 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

  • 相关阅读:
    [POJ 1200]Crazy Search
    [来源不详]删数方案数
    noip搜索模拟题 骰子
    [SDOI2010]地精部落
    [HAOI2008]硬币购物
    BZOJ1009: [HNOI2008]GT考试
    BZOJ1830: [AHOI2008]Y型项链 & BZOJ1789: [Ahoi2008]Necklace Y型项链
    BZOJ1251: 序列终结者
    BZOJ3620: 似乎在梦中见过的样子
    BZOJ4477: [Jsoi2015]字符串树
  • 原文地址:https://www.cnblogs.com/hjc4025/p/10675046.html
Copyright © 2020-2023  润新知