Ansible 使用中的一些实践
本地执行 记录 输出结果
样例一
cat check_app.yaml
- hosts: all
gather_facts: no
tasks:
- script: port_check.sh
register: netstat
- shell: source /etc/profile && jps | grep -v Jps | awk '{print $2}'
register: java
- shell: echo {{ansible_ssh_host}} {{netstat.stdout_lines}} {{java.stdout_lines}} >> /home/clay/result.txt
connection: local
3.2 访问 API
远程访问API
Jenkins为功能提供了机器消耗的远程访问API。目前,它具有三种风格:
- XML
- JSON with JSONP support
- Python
4.5 共享库之钉钉消息推送
起因:执行完流水线后进行一定程度的消息推送,所以选择钉钉进行jenkins
构建结构的消息推送
下载配置相关依赖插件
相关环境:
Jenkins
2.277.3,安装文档见上篇DingTalk
插件 2.4.3build user vars plugin
插件 1.7
-
在Jenkins中安装钉钉插件DingTalk
⚠️ 请确保你的 Jenkins 版本 >= 2.176.4
-
钉钉机器人配置,说明文档
找到 Jenkins 首页 >> 系统管理 >> 钉钉,我的配置如下图
⚠️ 注意手动输入机器人的id,不要自动生成,否则重启后,robot的id将发生变化
-
安装build user vars plugin插件,插件可能有相关版本依赖,需要重启一下 Jenkins 才能继续安装
在流水线中,使用wrap,获取BUILD_USER变量
wrap([$class: 'BuildUser']) { }
2.4 使用docker安装jenkins
安装配置docker
-
更换yum源,如果本来就是国内源,无需更换
curl -fsSL "https://gitee.com/clay-wangzhi/shell/raw/master/repo_replace.sh" | bash
-
安装配置Docker
使用官方脚本安装 Docker
curl -fsSL "https://get.docker.com/" | bash -s -- --mirror Aliyun
加载br_netfilter
modprobe br_netfilter
设置下系统内核参数
cat<<EOF > /etc/sysctl.d/docker.conf # 要求iptables不对bridge的数据进行处理 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1 # 开启转发 net.ipv4.ip_forward = 1 EOF sysctl -p /etc/sysctl.d/docker.conf
⚠️ 慎用
sysctl --system
命令,如果参数在不同文件中设置,会有优先级问题,目前看来/etc/sysctl.conf
的优先级最高配置docker镜像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
启动docker服务并加入开机自启
systemctl enable docker && systemctl start docker
4.3 Groovy 简明教程
最近一直有很多同学提到不会写 Jenkins Pipeline 脚本,我都是直接摔一个 Jenkins 官方文档给他们,但是当我自己仔细去查看资料的时候发现并非如此简单,无论是声明式还是脚本式的 Pipeline 都依赖了 Groovy 脚本,所以如果要很好的掌握 Pipeline 脚本的用法,我们非常有必要去了解下 Groovy 语言。
4.6 流水线开发工具
转载自:流水线开发工具 | 泽阳
您好,本模块主要了解在流水线中常用的方法😀
片段生成器
使用片段生成器可以根据个人需要生成方法,有些方法来源于插件,则需要先安装相关的插件才能使用哦。