Linux

git pipeline 指定 tag

Submitted by Lizhe on Thu, 07/18/2019 - 15:28

def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, yaml: """
kind: Pod
metadata:
  name: kaniko
spec:
  containers:
  - name: kaniko
    image: gcr.io/kaniko-project/executor:debug
    imagePullPolicy: Always
    command:
    - /busybox/cat
    tty: true
    volumeMounts:
      - name: jenkins-docker-cfg
        mountPath: /root

CA证书和Ingress (7) HSTS

Submitted by Lizhe on Wed, 04/24/2019 - 16:44

 

最近一直在测试 ingress 的 https 连接, 所以域名和证书频繁更换, 然后... 今天下午快被 HSTS 恶心死了

症状是换了证书或者地址之后, 浏览器认为是网站被劫持了

HSTS 会做什么呢? 在浏览器第一次访问了 www.bestofgit.com 之后, 如果此时连接被跳转到了https, 并且得到了HSTS的头标识, 那么支持HSTS的浏览器 ( 最新版的chrome ) , 会强制你的浏览器在下次访问的时候使用https连接这个网站 , 并且... 如果证书是不安全的 ( 自签名那种, 没有经过第三方认证的 ) , 那么恭喜你, 你会一直看到下面这个页面

一直到... 天荒地老 ... 当然不是, 一直到 HSTS 头中定义的时间过去, 如果它定义了 1 年, 那么再次恭喜你, 跟天荒地老也差不多了

CA证书和Ingress (6) Ingress 连接 https

Submitted by Lizhe on Wed, 04/24/2019 - 12:42

在之前做的例子中 ( 实际上也是绝大多数情况下 ) , 我们的 ingress 使用 443 端口, 提供了 https , 并且提供了 cert 证书, 然后它连接到后端服务的 80 端口

Ingress 443 => Backend 80

本例中我将尝试使用 Ingress 连接 backend 的 443 端口

Ingress 443 => Backend 443

这里我会使用下面的镜像

 

docker run -p 8080:80 -p 8443:443 --name nginx--rm -t mendhak/http-https-echo

CA证书和Ingress (5) Amazon Linux Certbot

Submitted by Lizhe on Tue, 04/23/2019 - 10:36

 

理论上来说, Amazon Linux 使用的是 Redhat 系的源码 + 自己的一些库 编译的, 也就是说应该和 Redhat/Centos 兼容,

但是实际上你无法直接在 Amazon Linux上直接使用 Certbot

 

[ec2-user@ip-10-1-0-60 ~]$ sudo /usr/local/bin/certbot-auto certonly

Sorry, I don't know how to bootstrap Certbot on your operating system!

 

You will need to install OS dependencies, configure virtualenv, and run pip install manually.

Please see https://letsencrypt.readthedocs.org/en/latest/contributing.html#prerequisites

for more info.

[ec2-user@ip-10-1-0-60 ~]$ 

CA证书和Ingress (4) 手动调用 letsencrypt

Submitted by Lizhe on Tue, 04/23/2019 - 00:20

 

lizhedeMacBook-Pro:lz_study lizhe$ ssh -i id_rsa ubuntu@54.95.179.97

Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1032-aws x86_64)

 

 * Documentation:  https://help.ubuntu.com

 * Management:     https://landscape.canonical.com

 * Support:        https://ubuntu.com/advantage

 

  System information as of Mon Apr 22 16:19:19 UTC 2019

 

  System load:  0.08               Processes:              179

  Usage of /:   35.1% of 15.45GB   Users logged in:        0

CA证书和Ingress (3) cert-manager 和 letsencrypt

Submitted by Lizhe on Mon, 04/22/2019 - 10:45

这玩意最大的好处就是 renew 是自动的

cert-manager is a Kubernetes addon to automate the management and issuance of TLS certificates from various issuing sources.

It will ensure certificates are valid and up to date periodically, and attempt to renew certificates at an appropriate time before expiry.

环境描述

这里我使用的是 Kubernetes + 我自己的一个独立域名, 运行在 aws 环境上 , ec2 主机的 ip 是 54.95.179.97

除了 cert-manager 安装在 system 命名空间下之外, 所有的资源 ( deployment, service, ingress, issuer, cert ) 全部都安装在 study 命名空间下

需要注意的是命名空间需要提前创建

CA证书和Ingress (2) 在Ingress中使用CA证书

Submitted by Lizhe on Sun, 04/21/2019 - 23:36

上一节中我们创建了一个自签名的CA证书

这一节我要尝试在Ingress中使用它

首先要在Kubernetes中创建 secret

kubectl create secret tls lizheca --key server.key --cert server.crt

然后就可以使用了

对应的Ingress内容为

 

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: hello-nginx-ingress

annotations:

kubernetes.io/ingress.class: "nginx"

spec:

tls:

- hosts:

- testca.com

secretName: lizheca

rules:

- host: testca.com

http:

paths:

- backend:

CA证书和Ingress (1) 创建自签名证书

Submitted by Lizhe on Sun, 04/21/2019 - 23:11

最近工作一直在和 Ingress 和 https 打交道, 写个专题记录一下

本篇文章重点关注如何创建自签名证书

1. 首先要生成一个 rsa 密钥

$ openssl genrsa -des3 -out server.key 2048

注意生成密钥时会要求输入最短4位的密码, 这个密码会在访问时弹出一个密码框, 后面我们会删除密码

2. 生成 csr , csr 是申请证书的请求文件

$ openssl req -new -key server.key -out server.csr

这里会要求你输入一些相关信息

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:Beijing

Locality Name (eg, city) []:Beijing

Organization Name (eg, company) [Internet Widgits Pty Ltd]:lizhe

git pull request 入门

Submitted by Lizhe on Tue, 07/03/2018 - 10:52

向目标项目提交需要遵循以下步骤

1. fork目标项目到你本地

2. clone你本地项目

3. 修改本地代码, 然后commit和push, 这些都是到本地

4. 然后去网页new pull request

如果要从目标项目更新到本地

1. 将目标项目添加为远程库 git remote add upstream git@github.com:pactera-admindev-lizhe/Test.git

-t branch

2. 然后可以看到远程库

lizhedeMacBook-Pro:Test lizhe$ git remote -v

origin https://github.com/zl86790/Test.git (fetch)

origin https://github.com/zl86790/Test.git (push)

upstream git@github.com:pactera-admindev-lizhe/Test.git (fetch)

Kong API Gateway Install and Start

Submitted by Lizhe on Thu, 05/31/2018 - 09:20

https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong-community-edition-0.13.1.el7.noarch.rpm

sudo yum install epel-release

sudo yum install kong-community-edition-0.13.1.el7.noarch.rpm

 

安装数据库

sudo yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm

 

sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7.6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

sudo yum install postgresql94