分类 DevOps articles

⚙ 记录一次 gitlab runner 的配置

首先介绍一下整体的情况,和我们的需求。

  1. 在我们组里,不同的项目和服务,被分到不同的 repo 中,托管在 gitlab 上面。

  2. 最近一段时间,由于构建的时间变长,用掉了 gitlab 免费的 2000 minutes。

因此,打算采用自己的 runner,来进行服务的构建和使用。

Gitlab runner 配置有些神奇。

……

Continue reading

使用 Docker swarm 构建 PostgreSQL 集群

又是一个渣翻,Copyright belongs to the original text。

原文地址

背景

PostgreSQL 在 9.0 版本已经开始持续接收大量的增强,包括:

  1. 异步拓展
  2. 同步拓展
  3. 仲裁提交
  4. 级联拓展
  5. 逻辑拓展

PostgreSQL 文档也提供了一个 overview 以及 不同拓展方法的比较。详见PostgreSQL 集群策略比较

用于部署 PostgreSQL 的拓展的主拓展的方法论,是一个重要的工具来为你的数据库集群创建高可用的环境。需要一个合适的部署策略来确保你的数据被保存到不同磁盘,以及不同的数据中心。

……

Continue reading

记恢复 https

这几天 https 挂掉了,似乎是因为铁门的证书(过期,不被chrome认可)了。因此重新搞一下 https。 恢复 https 也没有做什么工作,就是把之前的证书重新申请一次,然后下载下来的文件把之前的 https 文件替换掉。https 相关的文章很多,我就不再赘述了。可以参见很多人的文章。 此处唯一需要注意的是,我使用 Docker,对于 certbot ,也就是 letsencrypt 的支持不够好(也可能是我在man里面粗略的看了一下,没有找到)。因此,对于三个与的letsencrypt我就不使用了。 这次更新 https,也做了一些工作,就是把原来的 rewrite 选项改成了 301,做了一个重定向,整个速度都提升了不少(未测试,仅观感),感觉很不错。因此把之前的配置贴出来。 原来的配置 现在的……

Continue reading

为什么我的密码录入正确,但就是登录不上?

今天又偶遇了之前用阿里云出现的问题: 之前一直没有排查到错误,今天终于在本地机器的加持下得以解决。这是什么问题呢?IP地址冲突。 的确是IP地址冲突。首先先使用校园网client ssh b-server 服务器,失败了。使用同一个物理主机的a-server与b-server进行互联,成功了。校园网client能够连接a-server。因此,观察 a-server 和 b-server 的区别,发现 a-server 子网掩码是255.255.255.128,而 b-server 的子网掩码是 255.255.255.0。 此外,还有: 查看系统开放的端口 netstat -nltp 测试本地是否能够访问,排查本地问题 ssh user@locahost 子网掩码不同,为什么就连接不上呢?(原理) 最终,解决了这个问题。通过重启 networking 以及 重新通过 dhcp 获取 ip 地址。 使用 systemctl restart networking.service 重启 networking 服务。 使用 ifconfig eth0 down; ifconfig eth0 up 来开关具体的网卡。 使用 # dhclient -r 释放当前ip 使用 # dhclient 获取新的ip 大功告成,算是阶段性的解决了这个问题。DDNS迫在眉睫啊!……

Continue reading

# Docker swarm 学习

本文的学习过程主要是通过 Docker 官方文档 花了一段时间学习 Docker swarm,一个docker的容器集群服务,来应对即将到来的高并发项目需求。 Docker machine Docker machine 是 Docker 官方编排的项目之一,可以理解成一个 Docker 宿主机器的统一管理CLI,自部署不是很好用:目前国内仅仅 aliyun 支持,其他的我在官方文档中没有找到。 Docker machine 的安装十分简单,通过官网提供的脚本即可,For Linux: 安装好以后,即可按照相关的操作进行运行。 比如,创建两个虚拟机: 进入虚拟机: 显示虚拟机 然后即可在虚拟机的基础上进行相关的操作,十分方便。 Docker-swarm Docker swarm 则是一个集群的东西,基本的概念是,每个宿主机器都是一个 worker ,然后大家都加入一个东西,叫做 stack ,stack 里面有许多的 container ,每个宿主机器,也分别是一个 node 。 这个 stack 是依据我们的 service 建立的,stack 中保存着 service 建立的名称,也可以通过 stack 查看相关的节点。 每个 node 都可以运行多个 container ,swarm 会进行 负载均衡 ,这个就很酷了。 在官方的例子中,docker-compose.yml: 复制的 app service 数量为 5。 大体上就是这个样子。 想法 行文至此,想到可以进一步学习,然后去一些相关的社区学习一波。(不过按照之前的经验,很多社区的质量都不高,讨论纯属浪费时间。) 学完这些东西,至少可以把自己的服务器升级一波,做成标准的DevOps,以及充分利用服务器资源了。 Code GitHub – Svtter/Docker_Swarm_Test: a Docker swarm example project.……

Continue reading

如何配置终端

配置终端是许多人头疼的问题,比如配置之后没有达到自己预先想要的效果,但是又总是不知道哪里出了问题,或者配置完成之后又遭遇了很多烦恼。 本文的作用是解决这些问题,或者为解决这些问题提供一个思路。 颜色不对 颜色不对可能有很多原因,但归根结底是两个问题,一个是TERM环境变量没有设置好,另一个是当前使用的终端app不支持真彩色。 处理term可以使用 把它加载到你的rc文件里。有些人使用zsh,那么加入到~.zshrc里面。有些人使用bash,那么加入到~/.bashrc里面。 解决app真彩色问题,可以参考这个链接:https://gist.github.com/XVilka/8346728 Ubuntu14.04版本下默认的terminal是不支持真彩色的。 乱码 终端乱码很大程度上是因为当前的字体不支持输出的字符。这个时候安装一个字符集支持比较齐全的字体即可。常见的字体比如nerd fonts,包含了常用字体+许多的符号字体的集合,因此找到自己心水的字体,安装并且替换即可解决这些问题。 可能还有许多问题我没有想到,可以在留言区提出,我一并加上。……

Continue reading

使用Fabric进行部署

Fabric是一个可以在远程机器上运行命令的库

Fabric官方目前只支持Python2版本,但是有勤劳的人开发出了适配Python3的版本。具体可以查看这个fork

……

Continue reading

Latest articles

Categories

Tags

Meta