一、jenkins使用官方镜像(官方镜像默认是jenkins用户,权限太低)

  因此通过dockerfile重新改为root启动

  

FROM         jenkins/jenkins:lts
MAINTAINER dwy COPY get-pip.py /tmp/
# if we want to install via apt
USER root
RUN python /tmp/get-pip.py \
&& pip install requests RUN apt-get update && apt-get install -y apt-transport-https \
&& curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/local/bin/kubectl \
&& mkdir /root/.kube \
&& touch /root/.kube/config \
&& apt-get install vim -y # drop back to the regular jenkins user - good practice
#USER jenkins

二、容器启动后,创建/root/.kube/config文件

然后在k8s集群里面下载对应kubeconfig.json,将文件内容复制到/root/.kube/config里面

三、jenkins安装python插件

具体代码如下

 #!/usr/bin/env python
# -*- coding: utf-8 -*- import requests
import json,sys
from subprocess import Popen,PIPE image_tag_list = [
["hlike","nginx","201804h2_0721"],
["hlik","slm",""],
] for n,li in enumerate(image_tag_list,1):
print "num %s execute: ******************************************************************" %n
namespace = li[0]
repository = li[1]
tag = li[2] #文件读取出
uri="swr-api.cn-north-1.myhuaweicloud.com" #北京swr-api
url = "https://%s/v2/manage/namespaces/%s/repos/%s/tags" %(uri,namespace,repository) #根据官方容器镜像仓库api获取对应image:tag
res = requests.get(url, headers=headers).json() #这里我没写token,具体仓库,具体自己分析一下api如何获取信息,
tag_exist = False if type(res) == dict and res.has_key("errors"):
print "log: %s/%s is wrong!!!!!" %(namespace,repository)
sys.exit(1)
for line in res: #循环返回的结果,得到镜像对应信息
if line["Tag"] == tag :#比较返回tag和文件里面的tag是否有相等,若相等,说仓库存在对应镜像
tag_exist = True
print "%s/%s %s is exist!!!!!!!!!" % (namespace, repository, tag)
updated = line["updated"]
path = line["path"]
cmd1 = "kubectl set image deployment/%s %s=%s" %(repository,repository,path)
print "log: now is setting image,cmd: ",cmd1
ret = excute(cmd1)
print ret
if not tag_exist:
print "log: %s/%s %s is not exist" %(namespace,repository,tag)
sys.exit(1)

jenkins+python+kubectl实现批量更新k8s镜像的更多相关文章

  1. 更新k8s镜像版本的三种方式

    一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-c ...

  2. 利用pip批量更新python库

    如果python库比较旧,需要更新到最新版本,可以利用pip工具. DOS命令行下,输入pip -V查看pip版本,可以先把pip更新到新版本. 查看系统里过期的python库 pip list #列 ...

  3. python安装包及批量更新包

    python安装包 # pip安装 pip install pyecharts # 源码安装 - linux git clone https://github.com/pyecharts/pyecha ...

  4. 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷

    利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined

  5. 微软在MSDN中更新了Win8.1批量授权版镜像(中文版更新完毕&版本说明)

    微软在MSDN中更新了Win8.1大客户专业版和企业版镜像,零售版镜像(即专业版+核心版二合一镜像)没有更新,依然是9月份发布的版本.已证实,新的批量授权版镜像是集成了GA Rollup A更新,并且 ...

  6. pip --upgrade批量更新过期的python库

    pip --upgrade批量更新过期的python库 python pip 转载请标明出处:marsggbo网易博客http://blog.163.com/hexin_mars_blog/blog/ ...

  7. PIP 批量更新改为清华这边的镜像更新

    之前pip批量更新的时候发现有些包无法更新,而且速度也特别慢,今天尝试了下清华的镜像,速度是真快 # coding=utf-8import pipfrom subprocess import call ...

  8. Python批量更新模块的方法【面试必学】

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ranchlin      小编的环境为win10+python 3. ...

  9. 使用Python批量更新服务器文件【新手必学】

    买了个Linux服务器,Centos系统,装了个宝塔搭建了10个网站,比如有时候要在某个文件上加点代码,就要依次去10个文件改动,虽然宝塔是可视化页面操作,不需要用命令,但是也麻烦,虽然还有git的h ...

随机推荐

  1. Linux基础命令---fsck

    fsck 检查或者修复指定的文件系统,可以是设备名.挂载点,还可以是一个ext2的label,或者是一个UUID.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.ope ...

  2. 怎么查看CI,codeigniter的版本信息?想看某个项目中使用的CI具体是哪个版本,怎么查看?

    怎么查看CI的版本信息?想看某个项目中使用的CI具体是哪个版本,怎么查看?system\core\codeigniter.php中可以查看版本常量/** * CodeIgniter Version * ...

  3. MySQL数据库----基础操作

    一.知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list ...

  4. mysql多实例安装与ssl认证

    mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...

  5. LOJ10067 构造完全图

    LOJ10067 构造完全图 最小生成树 每次找到最小的边,将边两端的块合并 (我之前想的是什么鬼) #include<cstdio> #include<algorithm> ...

  6. Android实践项目汇报(一)

    # 我要做的是Google天气客户端 一.Need(需求): 1. 功能性需求分析 天气预报客户端,顾名思义就是为用户提供实时准确的天气信息,方便用户出行生活.根据用户日常需求,软件实现后所达到的功能 ...

  7. Eclipse给方法或者类添加自动注释

    自动生成注释: 在团队开发中,注释是必不可少的,为了是自己的注释看起来更加优雅,注释的格式应该统一,我们可以使用Eclipse注释模板自动生成注释. 具体操作如下: 打开注释模板编辑窗口:Window ...

  8. BZOJ 1063 道路设计(树形DP)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1063 题意:给出一个无环图( 也就是树,但是也有可能是森林),代表一个国家的城市.1是首 ...

  9. 2018 Machine Learning

    2018/8/13 线性模型(西瓜书P53~P73) Optimizer https://blog.csdn.net/u012151283/article/details/78154917 2018/ ...

  10. 【转载】TCP 与 UDP 的区别

    原文地址:TCP 与 UDP 的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...