在docs中,它表示您所要做的就是复制文件或文件夹。但是当我这样做然后尝试通过重新启动服务并使用GUI Manage Jenkins > Reload Configuration from Disk
来恢复(顺便说一下,有没有办法以编程方式执行此操作?),只恢复凭据(它们来自credentials.xml,我也复制了)。没有列出任何工作。
有什么想法吗?
编辑:
我创建了一个目录/ var / lib / jenkins / jobs / myjob,在其中我删除了" config.xml"文件。该文件曾经位于我服务器的上一个实例中,位于同一位置。
我还放弃了旧的" credentials.xml"进入/ var / lib / jenkins。这很好,我可以在网络界面中看到凭据。
答案 0 :(得分:3)
To restore jobs in Jenkins, you just need to copy jobs/
folder into new Jenkins HOME folder (only config.xml
files is enough) and make sure you've all necessary plugins (in Linux it's /var/lib/jenkins/
).
For Jenkins root configuration, you need to copy config.xml
from the main HOME directory (e.g. /var/lib/jenkins/config.xml
). All other XML files are just site-wide and plugin configuration files (which may be copied as well).
For more details, check the following Jenkins directory structure:
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
Source: Administering Jenkins - JENKINS_HOME directory
See also: Is there a way to keep Hudson / Jenkins configuration files in source control?
To reload configuration from the disk, use Reload Configuration from Disk option in Manage Jenkins. From Jenkins CLI, try reload-configuration
command to discard all the loaded data in memory and reload everything from file system.
答案 1 :(得分:1)
我使用部署用户部署了作业(以及插件和凭据),忘了将所有权设置为jenkins:jenkins
。
我通过阅读/var/log/jenkins/jenkins.log
的Jenkins日志来实现这一点,其中有一些" Permission denied"消息。
答案 2 :(得分:1)
如果您在Jenkins服务/ docker中仍然错误地更改了作业配置,则可以使用job configuration history plugin
从Web GUI还原配置Jenkins->作业->作业配置历史记录->选择以下项的单选按钮 正确的版本和错误的版本->显示差异(xml差异版本)->选择正确的 版本,然后按“恢复此配置”
答案 3 :(得分:0)
如果你想复制其他jenkins的工作,
只需将$ JENKINS_HOME / jobs // config.xml复制到新的$ JENKINS_HOME / jobs,然后从磁盘重新加载配置。
答案 4 :(得分:0)
根据上述答案,我认为您没有复制各个作业的配置文件。 JENKINS_HOME目录的布局如下:
$ JENKINS_HOME包含系统级配置文件,例如Jenkins master config.xml和credentials.xml
$ JENKINS_HOME / jobs包含所有单独的作业配置,并在每个作业的单独子目录中构建数据,例如:对于工作“myjob”,您将获得$ JENKINS_HOME / jobs / myjob / config.xml以及存储单个构建数据的其他文件。
因此,如果要在没有构建历史记录的情况下还原系统配置和所有作业,则需要复制:
$ JENKINS_HOME / .XML $ JENKINS_HOME / jobs / * /config.xml(使用Antglob表示法,**表示$ JENKINS_HOME / jobs下的所有子目录)
如果你安装了任何额外的插件,你还需要$ JENKINS_HOME / plugins / *。
如果要恢复所有构建历史记录,请复制$ JENKINS_HOME / jobs / *而不仅仅是config.xml文件。