欢迎访问www.showerlee.com, 您的支持就是我前进的动力.
  • [置顶] Jenkins+Ansible+Gitlab自动化部署三剑客

    showerlee 2016-03-11 13:00 Ansible, Git, Jenkins 阅读 (192,556) 26条评论
    最近一直在学习Ansible的一些playbook的写法, 所以一直没有怎么更新, 想到目前大家对诸如saltstack, docker, Ansible等自动化部署相关的工具很感兴趣, 但又苦于没有可学习的中文实例, 这里我就把我这几个月所接触到目前国外比较流行的部署经验给大家分享一下. 首先给大家介绍的是Ansible, 恩, 重要的问题说三遍, 不是Saltstack, Ansible作为一个python写的自动化部署工具, 确实较之前我所接触的Chef, saltstack, puppe...
  • Jenkins构建github webhook

    showerlee 2020-10-19 12:06 DevTools, Jenkins 阅读 (7,314) 抢沙发
    如何构建Jenkins github webhook, 这个一直在网上没有一个非常系统的解决方案, 官方给的文档也相对比较晦涩 刚好最近闲下来想在把之前的CICD项目搞的更加完备, 这里就结合这块顺带把Jenkins github webhook给大家整理一个文档, 帮助有需求的小伙伴针对如何使用Jenkins插件仓库下的github plugin与我们常用的github代码进行webhook集成. DEMO: https://github.com/showerlee/gradle-demo-with-docker ...
  • CentOS7.4构建Docker swarm部署Jenkins Configuration as code

    showerlee 2019-06-14 22:01 DevTools, Docker, 其他 阅读 (7,972) 抢沙发
    话说如果把Jenkins作为一只可爱的宠物, 部署及配置Jenkins是一个及其复杂和头痛的过程,我们作为铲屎官需要给这只名叫Jenkins的爱宠从打生下起都要进行细心的呵护, 在Web UI给他装插件, 配slave节点, 配环境变量, 配CI工具, 配后台管理权限等等,说实话你不写个自动化shell或者ansible你都不好意思跟你同行打招呼. 不过作为我们DevOps, 不是所有语言都能拿得起放得下(自黑), 在写自动化脚本过程中势必要跟我们的Jenkins本家...
  • Kubernetes之python client连接k8s API cluster

    showerlee 2018-10-23 22:01 DevTools, Kubernetes, 其他 阅读 (36,160) 5条评论
    大家在平时使用k8s可以说用到的最多的命令应该就是kubectl, 这个命令默认会在master上安装并与本地的k8s API cluster绑定token认证, 实现日常k8s的数据交互. 不过问题在于, 如果我们需要远程调用k8s API或者需要实现k8s自动化集成, 仅靠每次远程ssh集成使用kubectl命令这种偷懒的办法是远远不够的. 这里k8s官方给我们提供了两种比较主流的连接k8s API cluster的语言, 一种是GO, 另外一种就是我们DevOps比较主流的Python. ...
  • Kubernetes之Ingress+Traefik

    showerlee 2018-09-08 17:32 DevTools, Docker, Kubernetes 阅读 (19,633) 抢沙发
    今天是一个值得庆祝的日子, 终于把研究了半年未果的k8s ingress反向代理通过traefik这个工具给试验出来了, 这里感谢我的甜宝宝对我的支持, 因为有你, 我才有动力继续前行. traefik 是一款开源的反向代理与负载均衡工具。它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。目前支持 Docker, Swarm, Mesos/Marathon, Mesos, Kubernetes, Consul, Etcd, Zookeeper, BoltDB, Rest API 等等后端模型...
  • Jenkins-Pipeline-CI-CD-with-Helm-on-Kubernetes自动化流水线

    showerlee 2018-09-06 11:40 DevTools, Docker, Jenkins, Kubernetes 阅读 (23,653) 2条评论
    因为忙于家里事情, 很久没有更新我的博客, 这里我将这半年多对Jenkins pipeline集成k8s实现自动化部署流水线的心得在这里分享给大家, 有不足之处, 还请大家多多指正. 这里简单的介绍一下我们这个自动化流水线所使用到的工具: Jenkins Pipeline: 目前国内外DevOps, CI/CD比较主流的一种将我们软件开发周期所涉及到的环节通过pipeline流水线完美的串联在一起的自动化部署框架. 它提出了一种pipeline as a code的概念,...
  • CentOS7.4部署Python3+Django+uWSGI+Nginx

    showerlee 2018-04-20 18:18 Django, Programming 阅读 (16,436) 抢沙发
    安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Django: Django 2.0.4 nWSGI:  uwsgi-2.0.15 Nginx:  nginx- 1.10.2-1.el6 一. 系统环境配置 1.关闭iptables和selinux # su - root # service iptables stop # setenforce 0 # vi /etc/sysconfig/selinux 修改 SELINUX=disabled 2.添加本地host DNS # vi /etc/h...
  • CentOS7.4部署Django+Python3+Apache+Mod_wsgi

    showerlee 2018-04-16 11:11 Django 阅读 (22,520) 2条评论
    安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Apache: Apache 2.4.6 Mod_wsgi: 4.6.4 Django: Django 2.0.4 一. 系统环境配置 1.关闭iptables和selinux # su - root # systemctl stop firewalld # setenforce 0 # vi /etc/sysconfig/selinux 修改 SELINUX=disabled 2.添加本地host DNS # vi /etc/hosts 127.0.0.1 django.example.com ...
  • Kubernetes之Helm包管理

    showerlee 2018-04-14 13:01 DevTools, Kubernetes 阅读 (24,553) 2条评论
    最近研究了下kubernetes用的比较火的Helm, Helm作为一个包管理工具, 它把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,方便我们将其chart保存到chart仓库用来存储和分享, Helm支持发布应用配置的版本管理, 使发布可配置, 它最终简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。 其实Helm和我们的ansible playbook有一些类似的地方就是, 它支持变量预...
  • Kubernetes部署WordPress+MySQL

    showerlee 2018-02-24 17:51 DevTools, Kubernetes 阅读 (21,144) 抢沙发
    这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NFS去保存我们容器的源代码以及DB数据. 安装环境 System: CentOS 7.4 Kubernetes: Kubernetes1.9 Docker: 17.03.2-ce kube-master 10.110.16.10 kube-node-1 10.110.16.11 一. NFS配置: 1. NFS依赖包安装 在Master与Node分别安装NFS组件 # yum install nfs-utils -y Tip: 这里需保...
  • Kubernetes之Secrets与Config Maps

    showerlee 2018-02-24 12:11 DevTools, Kubernetes 阅读 (13,629) 抢沙发
    Secrets Secrets是一个包含敏感数据的对象,例如我们常用的密码,令牌或密钥等,  我们编写yaml如果直接明文这些信息则会将我们的敏感信息暴漏在我们的脚本中; 所以将其放置在Secret对象中可以更好地控制它的使用方式,并降低意外暴露的风险。 Pod可以引用我们事先创建好的Secrets键值对到环境变量, 通过获取环境变量的键值对动态更新我们Pod的环境配置, 从而实现动态配置更新. 1. 创建一个secret # kub...