背景

最近折腾博客发现FTP插件上传发布网站还是比较慢,而且FTP传这么多文件经常超时导致hexo部署失败。所以又开始折腾新的部署方式了。

准备

hexo git 插件

首先是hexo官方网站关于git插件的介绍: git-deploy

git-deploy

cpanel git repo部署

我使用的主机厂商控制台是cpanel,刚好cpanel附带git version 插件支持自动化部署网站,相应的介绍页面:
guide-to-git-how-to-set-up-deployment

cpanel-pull-push

从图上可以看到,这个插件支持两种部署方式,一种是推送代码,用户电脑推送更新到cpanel管理的git仓库,然后就会自动部署了;另一种是拉取代码,用户推送代码到远程仓库,cpanel拉取远程仓库的代码,然后手工操作部署。当然是用推送方式部署更好啦。

当然要实现自动部署肯定还需要别的步骤,比如这个.cpanel.yml,这个文件定义了部署之后的操作:

cpanel-yml

使用这个插件建立能自动部署的私有仓库还必须有shell访问权限guide-to-git-set-up-access-to-private-repositories

cpanel-shell

实践

首先当然是需要有shell权限,这个需要联系主机商提供,我这是找了一周多才帮我处理的:

shell-access

然后是在cpanel控制台建立git私有仓库:

private-repo

在hexo目录使用npm 安装hexo git部署插件:npm install hexo-deployer-git --save
并进行插件配置:

config

编写.cpanel.yml定制自动部署操作:

deploy

这里有些小坑,我们需要调整hexo配置文件保证我们的.cpanel.yml能正常上传,默认git提交不会提交隐藏文件:

include

同时拷贝一份该文件到实际的git提交目录:

deploy-git

好了,现在测试部署吧,使用hexo cleanhexo g -d命令清理文件并部署,测试如下:

result

打开cpanel控制台,可以看到确实自动部署了:

result2

总结

使用git插件通过ssh部署果然方便多了,也没有卡顿了,终于可以告别ftp的烦恼了。

背景

之前我们已经使用Vmware搭建NAT网络下的虚拟机,现在就使用该虚拟机来搭建PostgreSQL数据库开发环境。

步骤

  1. 直接使用Vmware的虚拟机克隆功能克隆之前的虚拟机,虚拟机->管理->克隆,然后一路点击下一步:
    clone
    step1
    step2
    step3
    step4

  2. 等待Vmware克隆虚拟机完成,然后进入虚拟网络编辑界面,添加新的端口映射,这里我们设置PostgreSQL虚拟机的IP为192.168.18.3,对外的端口为225432端口(PostgreSQL默认端口),映射到主机的端口对应为1032210332:
    nat

  3. 启动虚拟机并进入虚拟机的网卡脚本界面,调整虚拟机的静态IP,之后重启网络服务systemctl restart network
    network-pwd
    network
    network-restart

  4. 访问PostgreSQL官网PostgreSQL download确认在CentOS7上的安装方式,拷贝脚本并执行:

    • postgresql-yum
    • yum-install
    • postgresql-init
    • 编辑相关配置并重启postgresql 服务,pg默认只允许本地连接所以需要调整相应配置以方便宿主机访问:pg-edit
      listen-addr
      pg-dba
      pg-restart
    • 切换postgres 用户使用以下命令更新数据库密码:
      1
      2
      3
      4
      5
      su - postgres
      psql -U postgresql
      \password
      \q
      exit
      pg-password
    • 关闭防火墙便于宿主机访问systemctl stop firewalld && systemctl disable firewalld
      pg-firewall
  5. 宿主机使用数据库客户端测试能否正常连接数据库:
    pg-test

总结

经过这番折腾,终于搭建好了Vmware上的PostgreSQL11虚拟机,顺带了解了postgres的一些安装配置。

背景

在程序开发下,我们经常需要使用虚拟机环境来模拟服务器环境并且测试我们的程序。而在windows操作系统下,常用的两种虚拟环境软件是Vmware和加固我的Virtual Box(包括基于Virtual Box的Vagrant)。同时为了便于宿主机快速连接虚拟机环境,我们需要在宿主机上有端口能直接映射到虚拟机内部(Docker的libnetwork也可以实现,但这里我们还是优先使用Vmware+NAT),这里我们需要使用NAT网络地址映射搭建我们的虚拟机网络。

NAT(Network Address Translation,网络地址转换)

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。

实践

  1. 首先使用Centos 7镜像安装我们的虚拟机,安装完毕之后进入Vmware网络编辑界面,菜单:编辑->编辑虚拟网络->NAT设置,如下图所示:
    Network

  2. 可以看到这里我们的宿主机IP是 192.168.18.0,网关IP是192.168.18.1, 子网掩码是255.255.255.0
    对应这个NAT网络里的虚拟机的IP范围则是192.168.18.2 ~ 192.168.18.255
    这里我们首先设置一下第一个虚拟机的IP为192.168.18.2,并且设置将虚拟机的22端口映射到宿主机的 10222端口上(10000+命名规则虚拟机最后一个ip段*100+虚拟机端口,为符合计算习惯这里使用十进制计算)。如下图所示:
    nat_setting

  3. 接着进入虚拟机网络设置目录/etc/sysconfig/network-scripts,设置虚拟机的静态IP:
    network-scripts

  4. 这里我们的网卡脚本对应是ifcfg-ens33,编辑该文件:
    scripts

  5. 接着重启网络服务并测试连通性service network restart || systemctl restart network
    network-restart

  6. 启动sshd服务并且设置开机启动 systemctl start sshd & systemctl enable sshd:
    sshd

  7. 本地putty测试ssh连接:
    putty-ssh

总结

通过以上的步骤就成功的使用NAT网络设置了一台虚拟机,对应的内部IP是192.168.18.2,对于以后新建虚拟机我们只需要拷贝这份虚拟机的数据,修改里面的网卡脚本,并且在Vmware的虚拟网络编辑界面添加对应的端口映射,就可以快速搭建我们的虚拟机网络集群了。

0%