Ably

Ably 查看完整档案

无锡编辑菏泽学院  |  机械电子工程 编辑XS  |  Ably 编辑 xiz.site 编辑
编辑

Let everything around us become better

个人动态

Ably 发布了文章 · 2020-06-16

CentOS 8安装启动verdaccio服务

  1. 下载node

    mkdir -p /data/app
    cd !$  
    wget https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz
    tar xvf node-v12.18.0-linux-x64.tar.xz
  2. 安装node

    mv node-v12.18.0-linux-x64 node
    cd node
    ln -s /data/app/node/bin/node /usr/bin/node -f
    ln -s /data/app/node/bin/npm /usr/bin/npm -f
    node -v

    如果node -v正常显示版本,则可以进行下一步

  3. 安装verdaccio 和一些其他的工具

    yum -y install vim mlocate
    npm install -g verdaccio
    ln -s /data/app/node/lib/node_modules/verdaccio/bin/verdaccio /usr/bin/verdaccio
    useradd verdaccio

    时间略长,耐心等待安装完成
    verdaccio -i显示正常说明安装没有问题

  4. 配置verdaccio

    mkdir /verdaccio
    
    updatedb && locate config.yaml
    
    cp /root/.config/verdaccio/config.yaml /verdaccio/
    # 或
    cp /data/app/node/lib/node_modules/verdaccio/conf/default.yaml /verdaccio/
    
    sed -ri 's#(.*url: ).*#\1https://registry.npm.taobao.org#' /verdaccio/config.yaml
    echo '# 默认没有下面一行,只能在本机访问,添加后可以通过外网访问,端口自行更改' >> /verdaccio/config.yaml
    echo 'listen: 0.0.0.0:80' >> /verdaccio/config.yaml
  5. 配置verdaccio服务

    cp /data/app/node/lib/node_modules/verdaccio/systemd/verdaccio.service /etc/systemd/system/verdaccio.service
    sed -ri 's@^(ExecStart=).*@\1/usr/bin/verdaccio@' !$

    配置(/etc/systemd/system/verdaccio.service)的内容如下:

    [Unit]
    Description=Verdaccio lightweight npm proxy registry
    
    [Service]
    Type=simple
    Restart=on-failure
    #User=root
    ExecStart=/usr/bin/verdaccio
    
    [Install]
    WantedBy=multi-user.target
  6. 启动verdaccio服务

    systemctl enable verdaccio.service
    systemctl start verdaccio.service
    systemctl status verdaccio.service
  7. 验证
    通过其他内网PC访问部署verdaccio服务的IP地址,如果页面可以正常出来就可以了。注意服务器的防火墙是否开启,如已开启,还需要放行对应端口。另外如果不懂SELinux,可以将其关闭

    sed -ri 's#^(SELINUX=).*#\1disabled#' /etc/selinux/config

    然后重启服务器使config生效。

查看原文

赞 0 收藏 0 评论 0

Ably 发布了文章 · 2020-01-17

关于Jenkins使用Python的那些坑

在使用Jenkins做自动发布的时候用到了Python脚本,有两种方式:

  1. 一是直接通过Jenkins安装Python相关插件,然后在构建时直接执行Python脚本中的命令;
  2. 另外一种方式就是在Jenkins服务器上安装脚本对应的Python版本,然后在Jenkins页面配置CMD命令执行Python脚本,如python xxx.py;

因为Jenkins上安装的Python插件不知道对应Python的什么版本,这里选择了第二种方式,即在Jenkins服务器上安装Python。
中间也是各种折腾,遇到了几个问题:

  • 编码问题;
  • python不识别的问题;
  • 找不到依赖的问题;

这里不着急解释这些问题是如何解决的。因为都是姿势不对导致的。这里说一下正确的姿势。
这里用到的软件版本:

名称版本
系统Windows Server 2012 R2 Datacenter
Jenkins2.204.1(Manage Jenkins下的关于Jenkins可查版本)
Pythonpython-3.8.1 32位(官方各版本下载地址
pip19.2.3(安装python时选中一起安装的)

接下来要注意的事项:

  • 保证编写的脚本对应的python版本和Jenkins上安装的python版本是兼容的,最好一致(以免某些语法或依赖不兼容);
  • 安装python时注意安装路径,最好不要使用中文和其他特殊字符,以免后面被特殊对待,出现各种不可预知的问题;
  • 安装时选中安装pip和ADD TO PATH,如果没有,自行下载安装pip,并手动为python和pip添加环境变量,保证通过cmd命令查看二者的版本时是正确的;如下图:
    查看版本
  • 编写好的python脚本放置的路径同样不要包含中文和其他特俗字符,上面提到的编码问题就很可能是路径中包含了中文(这里令我浪费时间去了解更改python的默认编码,最后还是更换了脚本路径就好了);
  • 保证在Jenkins服务器上直接通过命令行运行脚本的结果正常(这里如果有问题,Jenkins上执行肯定也有问题);
  • 如果上面的步骤提示找不到某些依赖,把python下的Script也加入到环境变量,然后通过命令行安装对应的依赖包,pip install package_namepip3 install package_name
    注意:如果使用默认的包源,安装会比较慢(服务器在国外);这里可以永久更换pip的包源。操作步骤如下:

    1. 打开文件夹,输入路径%appdata%后回车,进入的路径类似“C:UsersUserNameAppDataRoaming”;
    2. 新建文件夹“pip”并进入其中;
    3. 新建文件“pip.ini”并编辑,内容如下:

      [global]
      timeout = 6000
      index-url = http://mirrors.aliyun.com/pypi/simple/
      trusted-host = mirrors.aliyun.com
    4. 之后再通过pip或pip3进行安装就会快很多;
  • 以上的步骤都正常了,就可以在Jenkins上执行CMD命令了,这里需要注意的是无论是python还是脚本都要使用全路径,或者先定位到脚本所在的目录下;如
    python的安装路径为“C:WorkAppsPythonPython38-32”
    脚本路径为“E:jenkins_pythonwait_run.py”

    • 直接执行CMD命令:
      C:\WorkApps\Python\Python38-32\python.exe E:\jenkins_python\wait_run.py
    • 或者先定位到脚本所在的目录,再执行对应的CMD命令:
      E: && cd E:\jenkins_python\wait_run.py && C:\WorkApps\Python\Python38-32\python.exe wait_run.py
      如果上面不适用python的全路径,就很可能会报错——上面提到的“python不识别”。注意:这里不是因为Jenkins对python的版本不兼容引起的,而是python.exe不在Jenkins执行用户的PATH里面,故而即使配置了PATH,Jenkins还是找不到python;

至此,Jenkins上配置的python脚本就可以顺利进行了。
如果遇到问题,可以先拆分以便排查,节约验证的等待时间。比如上面的Jenkins不识别python,可以把CMD命令配置为“python --version”,发现是路径问题,改为“C:WorkAppsPythonPython38-32python.exe --version”,再执行发现可以正常运行了,再继续验证后面的问题。
我的思路就是万不可被问题围殴,而是将其拆分,使其排成一列纵队,然后再如打怪通关,一关一关过(前提是大方向要先定下来,不然不辞劳苦的通关了,发现终点不是自己要的结果就尴尬了)。

查看原文

赞 0 收藏 0 评论 0

Ably 发布了文章 · 2020-01-08

VMware虚机的网络配置

  • VMWare连接网络的三种模式:

    • 桥接模式(将虚拟机直接连接到外部网络):虚机通过宿主机网卡直接访问外网,不创建单独的网络适配器;
    • NAT模式(与虚拟机共享主机的IP地址 N):创建虚拟网络适配器(通过虚拟网卡连接虚拟交换机实现内网通讯-子网),可访问外网;
    • 仅主机模式(在专用网络内连接虚拟机 H):创建虚拟网络适配器(通过虚拟网卡连接虚拟交换机实现内网通讯-子网),操作一番也可访问外网;
  • 用到的配置如下:

    名称备注
    宿主机系统Win 10
    虚拟机软件VMWare15.1
    虚机系统CentOS 8/7
    网卡内外网双网卡
  • 问题描述:
    宿主机无法远程虚机;
    虚机无法访问外网;
    无法ping通baidu.com;
    简而言之,虚机的网络连接选择的桥接模式,宿主机和虚机彼此ping不通,虚机ping不通baidu.com,宿主机可以正常访问外网。
  • 问题解决:

    1. 正常安装完虚机系统后关闭虚机,在虚拟机设置中,更改网络连接为桥接模式,如下图:配置虚拟机网络连接
    2. 编辑-虚拟网络编辑器-VMnet信息(桥接模式) 中将 桥接到自动 修改为 可以访问外网的网卡 。如下图:
      虚拟网络编辑器配置
      或者修改为NAT模式,如下图:NAT网络配置.png
    3. 启动虚机,登录后修改虚机的静态IP地址。
      ls /etc/sysconfig/network-scripts/
      vim /etc/sysconfig/network-scripts/ifcfg-eth0(此处名称会有差异)
      配置的主要内容如下:

      NAME=eth0 #可自定义
      BOOTPROTO=static #配置为静态IP
      IPADDR=192.168.7.6
      NETMASK=255.255.255.0
      GATEWAY=192.168.7.2 #上图中的网关
      DNS1=223.5.5.5 #ali DNS
      DNS2=223.6.6.6 #ali DNS
      ONBOOT=yes #开机启动

      对于无法ping通baidu.com,需要修改配置文件

      vim /etc/resolv.conf
      #修改其中的servername,这里使用了阿里的DNS,如下
      nameserver 223.5.5.5
      nameserver 223.6.6.6

      重启网络服务
      service network restart
      成功重启后,宿主机与虚机可以相互ping通,虚机也可以ping通百度。最终宿主机可以远程虚机,虚机可以访问外网。
      注意虚机的防火墙要把远程端口22放行。
      最终结果如下图:宿主机远程虚机并访问外网
      如果是NAT模式,自动获取的IP即为起始的IP。

以上只是简略记录网络配置的关键点,其他具体细节可自行谷歌百度。

查看原文

赞 1 收藏 1 评论 0

Ably 评论了文章 · 2019-03-18

用FileZilla搭建FTP服务器及相关问题

版本信息

注意大版本信息是否一致,小版本差别不大(仅供参考)!!

FileZilla的安装配置

因为在拷贝某些大文件的时候,Windows系统会有限制,经常拷贝失败,此时可考虑使用FTP Server来解决文件的传输问题,这里选择开源的FileZilla,专业实用快捷。版本没有强制要求,根据自身情况选择。

服务端的安装配置

建议在负责接收文件的操作系统上安装。

  1. 右键点击安装包,选择以管理员身份运行,选择“I Agree”,如下图:
    I Agree
  2. 接下来的配置默认即可,直接下一步(Next)
    Next - 1
    Next - 2
    Next - 3
    Next - 4
    安装过程中,如下图:
    安装过程中···
  3. 安装完成,点击close关闭窗口。
    安装完成
  4. 勾选总是连接此服务,其他配置默认即可,然后点击连接(Connect)。
    点击连接(Connect)
  5. 配置FileZilla Server的基本设置(General settings)
    配置FileZilla Server的基本设置(General settings)
  6. 配置TLS加密设置,包含证书的生成步骤,其中填写的信息可随意。
    配置TLS加密设置
    证书生成结果提示,如下图:
    证书生成结果提示
    证书密码(Key password)可自行选择是否设置,如下图:
    证书密码设置
  7. 配置端口与ip,如下图,根据自身情况修改IP,然后点击OK。
    配置端口与ip
    服务启动后的提示信息如下图:
    服务启动后的提示信息
  8. 参照文档的防火墙配置方法,在防火墙中对端口14140-14149进行放行(添加入站规则端口)。
  9. 配置用户,如下图:
    clipboard.png
    设置用户密码,如下图:
    设置密码
  10. 为用户配置文件夹,如下图:
    为用户配置文件夹

客户端的配置

客户端的安装跟其他软件没什么差别,自行选择安装路径进行安装。
1) 客户端的配置如下图:
客户端的配置

2) 选择信任证书,如下图:
选择信任证书

3) 连接成功,客户端提示,如下图:
连接成功,客户端提示

4) 服务端提示如下图:
服务端提示

5) 文件传输,如下图:
文件传输

问题与警告

  • 问题:You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.
    解决方法:
    “Edit”-“Setting”或直接点击设置按钮(齿轮);
    选择“Passive mode settings”选项卡,勾选“Use the following IP:”并填写服务器的IP地址,之后点击“OK”保存;
    passive mode settings
    接下来的提示信息中不再提示上述问题;
  • 问题:响应: 425 Can't open data connection for transfer of "/"
    配置过程中没有设置“Use custom port range”,那么在客户端连接服务端读取目录时就会报此错误
    这个问题主要是由于使用Passive Mode模式造成的。
    解决方法:
    在上面的设置窗口中要勾选该项,设置端口范围,并在后面的防火墙设置中,将端口范围加入到入站端口中。
  • 警告:Warning: FTP over TLS is not enabled, users cannot securely log in.
    解决方法:启用TLS传输,具体操作如下:
    “Edit”-“Setting”或直接点击设置按钮(齿轮);
    选择“FTP over TLS settings”选项卡,点击“Generate new certificate...”;
    生成验证时Key size”根据自己的喜好选择即可,其他信息可以根据自己的情况随意填写,然后选择保存地址(最好放到安装路径下) “;
    其中的Common name(Server address)是连接时使用的域名或IP,如我这里填写pro.ftp.cool.com,后面用客户端连接时,主机(H)就填写pro.ftp.cool.com。同时还需要将该域名解析到FTP服务器的外网IP。Key size最好选择4096bit
    生成验证
    名称默认为“certificate.crt”就好,最终选择生成;
    提示“Certificate generated successfully”则说明生成没有问题,点击“确定”关闭弹窗;
    点击“OK”保存设置;
    之后的信息提示不再出现警告。
  • 接下来就是创建“Group”,“Users”并设置“Shared folders”

    不做详细解说,只需注意:

    1. 添加用户时为用户分配组;
    2. 为用户分配文件夹的权限,并指定Home文件夹(即“Set as home dir”,路径前出现“H”即可),如下图;
      Set as home dir
  • 端口设置
    默认端口:21,上面修改为14149
    加密端口:990,上面修改为14148 自定义的端口范围:14140-14149(根据自己的情况更改)
    可以自行设置,但是需要注意的是无论使用什么端口,在后面一定要添加到防火墙的入站规则中去。
    默认端口及加密端口可以自行更改。
  • 在本地安装客户端
    通过客户端连接服务器就可以了。
    初次连接时会提示如下,选择信任,确定即可。
    证书信任提示

因为近期整理文档,顺便更新一下完整的步骤。
Ably更新于2019年6月12日11:35:59

查看原文

Ably 发布了文章 · 2019-03-02

华硕主板Z97-A无法识别intel M.2 NVME固态硬盘的解决方案

硬件信息说明

主板:华硕Z97-A
固态硬盘:英特尔(Intel)760P系列 256G NVMe M.2 2280接口 SSD固态硬盘
BIOS:2015年发布的版本,点击下载最新的BIOS固件Z97-A-ASUS-3503.zip(测试版本,慎重更新)华硕官网
系统:Windows10专业版
硬盘优化工具:点击下载英特尔®固态硬盘工具箱Intel SSD Toolbox - v3.5.9.exe访问官网
说明:以上直接下载的工具是适用于Windows10系统的,如需下载其他版本,请自行访问官网进行下载。

升级BIOS

  • 将下载好的Z97-A-ASUS-3503.zip解压缩,文件名为Z97-A-ASUS-3503.CAP
  • 准备好U盘,注意U盘的格式为FAT32
  • 将解压后的文件拷贝到U盘中(电脑的其他盘应该也可以,已验证);
  • 重启电脑,按F2进入BIOS设置;
  • 定位到BIOS升级界面,选择U盘中的升级固件,点击升级,等待升级完成,操作图如下;
    进入到升级界面:
    升级BIOS步骤 1 - 进入到升级界面
    找到固件文件:
    升级BIOS步骤 2 - 找到固件文件
    确定阅读此文件(请慎重!!):
    升级BIOS步骤 3 - 确定阅读此文件(请慎重!!)
    确定升级BIOS(请慎重!!):
    升级BIOS步骤 3 - 确定升级BIOS(请慎重!!)

开启M.2模式

  • BIOS升级完成后重启电脑,按F2进入BIOS设置;
  • 定位到高级-内置设备配置界面下,更改PCI-EX16_3插槽带宽M.2 Mode(如下图),按F10保存并退出,等待系统重启完成即可;
    开启M.2 Mode
    需要特别注意的是,这里的PCIeX1 1 and 2 slot at X1 ModeM.2 Mode只能二选一,也就是独立网卡和M.2 NVME固态只能生效一个,这里选择M.2 Mode后,固态可以正常使用,但是只能使用集成网卡(集成网卡本就是千兆网卡)。另外注意,网络属性配置中,如果链接速度速度和双工选项配置跟实际网络环境不匹配,网络适配器中会提示网络电缆被拔出。必须保证路由器或光猫的接口也是千兆网口,用的网线也是6类线。如果光猫只有一个千兆口,可用千兆路由或千兆分线器(交换机,家用可以选择4口千兆)增加千兆网接口。如我的家用带宽电信200M,光猫上只有一个千兆网口,我可以直接用6类线连接该网口与PC上的集成网卡接口,然后以太网属性中的配置下,链接速度速度和双工设置为1G/s全双工就可以正常使用。但是如果连接的是光猫的百兆口,上面的设置就只能设置为100Mbps 全双工
    网络属性的配置

硬盘处理

  • 启动系统,随意打开一个文件夹,右击此电脑,点击管理进入计算机管理界面;
  • 点击左侧存储下的磁盘管理
  • 找到新装的M.2固态硬盘,创建分区并格式化,如下图;
    分区并格式化
  • 安装Intel固态硬盘工具箱,打开就可以看到硬盘诊断优化界面,如下图;
    Intel固态硬盘工具箱
  • 通过该工具就可以对Intel固态硬盘进行诊断和优化;
查看原文

赞 2 收藏 2 评论 2

Ably 关注了标签 · 2019-01-15

centos7

CentOS第七版

关注 49

Ably 关注了标签 · 2019-01-15

keepalived

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

关注 12

Ably 关注了标签 · 2019-01-15

关注 16

Ably 关注了标签 · 2019-01-15

lnmp

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis、Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

关注 22

Ably 发布了文章 · 2019-01-14

LNMP+HAProxy+Keepalived负载均衡(五)- 通过rsyncd实现文件的相互同步

上接前文,前文提到web服务器附件不同步的问题,这里补上文件同步的配置。因为是做相互同步,所以下面的操作在两台服务器上都要执行。

  • 安装同步软件(执行:源服务器和目标服务器)

    # 安装同步服务所需的软件
    yum -y install rsync
  • 配置密码本(执行:源服务器和目标服务器)

    mkdir -p /etc/rsyncfg/
    # 注意:下面的两个SyncPwd必须一致
    echo 'SyncName:SyncPwd' > /etc/rsyncfg/server.pwd
    echo 'SyncPwd' > /etc/rsyncfg/client.pwd
    # 密码文件配置权限
    chmod 600 /etc/rsyncfg/server.pwd
    chmod 600 /etc/rsyncfg/client.pwd
  • 配置防火墙端口(执行:源服务器)

    # 开启防火墙端口
    firewall-cmd --zone=public --add-port=873/tcp --permanent
    firewall-cmd --reload
  • 配置同步软件(执行:源服务器)

    # 编辑配置文件
    vim /etc/rsyncd.conf
    
    # 配置文件内容
    uid = root
    gid = root
    use chroot = yes
    max connections = 4
    transfer logging = yes
    timeout = 900
    ignore nonreadable = yes
    dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
    
    [uploads]
    path = /home/wwwroot/PublishPath/uploads
    comment = Host:192.168.6.100 uploads files
    # 排除目录和文件,可以为各个模块单独配置此规则(必须是相对路径)
    exclude = vendor .env
    ignore errors
    read only = yes
    write only = no
    list = no
    auth users = syncer
    secrets file = /etc/rsyncfg/server.pwd
    hosts allow = 192.168.6.110
  • 重启服务(执行:源服务器)

    service rsyncd restart && service rsyncd status
  • 执行同步操作(执行:目标服务器)

    echo '' > /etc/rsyncfg/sync.log
    echo 'rsync -auv --password-file=/etc/rsyncfg/client.pwd SyncName@192.168.6.100::uploads /home/wwwroot/PublishPath/uploads/' > /etc/rsyncfg/sync.sh
    chmod +x /etc/rsyncfg/sync.sh
    cp /etc/rsyncfg/sync.sh /usr/sbin/
  • 配置计划任务(执行:目标服务器)

    crontab -e
    # 添加任务
    # * * * * * /etc/rsyncfg/sync.sh # 取消前面的注释即可
    
    # 重启定时任务服务
    service crond restart && service crond status
  • 问题汇总

    • ERROR: auth failed on module XXX

      @ERROR: auth failed on module XXX
      rsync error: error starting client-server protocol (code 5) at main.c(xxx) [Receiver=x.x.x]
      
      1、密码输入错误:
      请再次确认你登录用户的密码无误
      2、secrets file格式错误:
      secrets file的文件格式是  upload:123456
      表示upload用户的rsync密码是123456
      3、配置文件写错:
      最坑爹的一个,看看自己模块配置下面的auth users、secrets file有没写错
      4、secrets file权限问题
      服务端的secrets file权限必须是600,
      可以使用chmod 600 /home/user/test/rsync/etc/test.pass
      5、secrets file文件拥有者与rsync运行者
      服务端rsync服务是以什么用户运行,则必须保证secrets file文件拥有者必须是同一个
      假设root运行rsync --daemon,则secrets file的owner也必须是root
      6、如果是以--password-file=file的方式附带密码
      确保客户端密码文件格式无误,与服务端的密码文件不同,
      客户端的不用加上用户名,即直接是  123456
    • rsync: failed to connect to X.X.X.X Connection timed out (110)

      rsync: failed to connect to 192.168.6.100 (192.168.6.100): Connection timed out (110)
      rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]
      
      端口不通,开启防火墙的873端口:
      firewall-cmd --zone=public --add-port=873/tcp --permanent
      firewall-cmd --reload
    • ERROR: password file must not be other-accessible

      ERROR: password file must not be other-accessible
      rsync error: syntax or usage error (code 1) at authenticate.c(196) [Receiver=3.1.2]
      
      密码本权限不对:
      chmod 600 /etc/rsyncfg/server.pwd
      chmod 600 /etc/rsyncfg/client.pwd
查看原文

赞 0 收藏 0 评论 0

认证与成就

  • 获得 94 次点赞
  • 获得 6 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 6 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2016-05-31
个人主页被 2.4k 人浏览