Linux

简单使用Certbot申请和使用Let's Encrypt的SSL证书

certbot是什么 我们申请和使用Let's Encrypt的免费HTTPS证书, 就需要一个证书申请和管理的工具, 然后certbot是官方推荐的申请工具, 我们使用这个工具申请和管理我们的证书 certbot支持大部分的linux发行版, 使用简单, 我们直接下载和安装他们: 我这里的系统是ubuntu, 如果是centos或者其他发行版安装方式应该都是差不多的, 我使用官方包直接快速安装 关于HTTPS是什么可以看这里, Let's Encrypt是什么看这里. sudo apt update && sudo apt install certbot 安装成功之后需要使用sudo命令运行, 我们运行看看: sudo certbot -h 输入密码之后, 可以看到说明 获取证书 安装好管理工具之后,

  • 壳壳
    壳壳
4 min read
Docker

Golang 新手可能会踩的 50 个坑

Golang 新手可能会踩的 50 个坑 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。

  • 壳壳
    壳壳
50 min read
Docker

使用drone和gogs搭建自己的CI/CD系统

drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。 首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。 需要的东西有:linux,docker,docker-compose,drone,gogs,git等。 安装gogs和drone 配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们: version: '3' services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:

  • 壳壳
    壳壳
5 min read
Docker

使用docker安装Jenkins并且配置一个agent(二)

Jenkins界面 首先我们进入Jenkins的管理界面,首先使用docker启动上一节在docker安装好的Jenkins。 $ docker container start jenkins 启动好了之后打开浏览器输入http://localhost:8000 进入Jenkins的管理界面。 然后点击系统管理,节点管理。 然后我们创建一个新的agent。 agent创建 我们点击左边的new node创建一个新的agent。 我们保持默认值不变,直接保存。 然后我们在节点中心里边点击agent的这个节点,看到如下界面。 如果你没有看到,可以在这个agent的configure里边的 Launch method 设置成通过Java web启动代理就可以了。 然后我们看到里边会有一行命令,来说明怎么执行Jenkins agent ,我们只需要他的secret和host就好了。 启动agent节点 使用docker安装Jenkins

  • 壳壳
    壳壳
2 min read
Golang

使用Go,Gin和Gorm开发简单的CRUD API

介绍[1] Golang是一种令人兴奋的语言,但新手可能会被新的语法和各种框架所淹没。基础知识入门可能会成为一项挑战。 在这个例子中,我想展示创建功能API所需的最少代码。我们将开发一个简单的API,为基本模型提供创建,读取,更新和删除(CRUD)功能。使用和对象关系映射(ORM)工具,我们将能够快速更新我们的数据模型,所有数据模型都在100行代码之下。所以让我们开始吧。 在https://github.com/cgrant/gin-gorm-api-example可以找到这篇文章的所有代码。 package main import ( "fmt" "github.com/

  • 壳壳
    壳壳
3 min read
Golang

学习go语言习题笔记之进阶知识

进阶[1] 当像这样增加一个值的时候,什么类型可以工作? …这里没有指针运算, 因此如果这样写: *p++, 它被解释为 (*p)++:首先解析引用然后增加值。 答案:这仅能工作于指向数字(int, uint 等等)的指针值。 为什么它不能工作在所有类型上? 答案:++ 仅仅定义在数字类型上,同时由于在 Go 中没有运算符重载,所以会 在其他类型上失败(编译错误)。 使用练习 Q12 的答案,利用 interface 使其更加通用。让它至少能同时工 作于

  • 壳壳
    壳壳
4 min read