使用docker cp load jenkins plugins and job question

问题目标

  • 自动化实现jenkins container的初始化。包含初始化jenkins job、plugins、slave node 等等

问题描述

  • 我们采用官网推荐的方式,将job的config.xml、jenkins所需要的插件(由于AWS下载插件速度过慢)、以及node 的config.xml均使用docker cp的方式从容器外部copy到容器内/var/jenkins_home下的对应文件
  • 当使用docker cp将插件和job都放在容器中的正确位置之后,打开jenkins GUI发现没有一个job被load。

思路

  • Q1:为什么明明在容器中的~/jobs/下面存放了一个test job,却在GUI上看不到这个job?
  • A1:表象是GUI上看不见这个test job,真实的是这个job没有被创建,既然创建失败,必然会有log信息。因此docker logs jenkins -f发现果然报错,报出错误java.io.IOException: Failed to create a temporary file in /var/jenkins_home/jobs/test/builds Caused by: java.io.IOException: Permission denied错误信息很明显说是没有办法在/var/jenkins_home/jobs/test下创建builds文件

  • Q2:为什么没有办法在/var/jenkins_home/jobs/test下创建builds文件?
  • A2:看到permission denied可以反应过来,肯定是test文件夹下不能创建文件。那么我们进入容器查看test文件夹的权限,发现权限很奇怪drwxr-xr-x 3 501 dialout 4096 Aug 17 10:11 test,那么说明我现在需要一个写权限,通过使用whoami发现当前用户是jenkins,发现文件夹确实没有给jenkins写权限,那么不如直接chmod修改权限,但是jenkins用户没有chmod的权限。只好重新cp 一份权限是775 的test文件夹。发现依旧不能创建文件。

  • Q3:为什么权限改成755这时候我已经给jenkins用户分配了写的权限为什么还是不能创建文件呢?
  • A3:因为好奇去查看的Linux文件权限,才发现自己对文件权限的理解一直是错的。我一直以为drwxr-xr-x 3 501 dialout 4096 Aug 17 10:11 test第一组rwx是分给root用户的,第二组是给jenkins的,第三组是给其他人的,所以理解完全错误。用一张图给出正解:
    image.png

    因此说明此时jenkins并不是501用户,他只有最后一组权限。所以我尝试重新再次修改权限为757docker cp。此是GUI可以看到这个job了,但是不能构建,构建就会立刻报错
    No such file: /var/jenkins_home/jobs/test/builds/2/log进入容器发现builds文件夹存在但是没有2文件夹

  • Q4:既然没有/builds/2/log文件能说明builds文件夹jenkins也没有创建文件的权限对吗?这样改下去什么真的很痛苦,有没有别的办法?
  • A4:查看build之后发现确实没有权限创建文件。想起胡老师说尽量不要改权限,可以采用让当前用户cp一份这个文件,那么jenkins用户就拥有了对文件的所有权限了。这时候,在容器中使用jenkins用户在jobs 下cp test test1 。restart之后发现可以test1 job并且可以构建。

  • Q5:问题解决,突然想起来看到的test文件的owner竟然是501,是什么鬼?为什么使用docker cp进来的文件权限如此奇怪?
  • A5:经过查阅Linux知识发现:每个用户其实有对应的UID number(比如root UIDnumber是0),而UID是501的用户是admin。并且查阅官网后发现使用docker cp将文件从容器外cpoy到容器内文件owner会变成root--->files copied to a container are created with UID:GID of the root user.

反思

  • Linux基础知识实在太差。

action

  • 以后每天至少总结一条Linux基础知识,不可以间断
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,494评论 18 139
  • 软件的持续集成工具之一,易上手,功能强大,话不多说,干货奉上。我的博客地址:http://blog.lzoro.c...
    格子Lin阅读 12,165评论 10 41
  • 前言 前段时间的工作中有接触到接口测试,测试代码以maven工程的形式编写,使用testNG测试框架。工作中,每次...
    Ivanlfli阅读 3,867评论 7 24
  • jenkins是一个用Java编写的开源自动化服务器,它是Hudson的一个分支project ; 它是一个持续集...
    _palm阅读 10,480评论 0 16
  • 我已经多年未见过他,我也不敢去想,再次相见会是怎样的场景。 我是希望再见到他时,我们的手上都有另一个人。 在车水马...
    凉青茶阅读 168评论 0 0