Atualmente, estou usando o Jenkins no meu PC de desenvolvimento. Eu o instalei no meu PC de desenvolvimento, porque eu tinha conhecimento limitado sobre essa ferramenta; então eu testei no meu PC de desenvolvimento. Agora, me sinto à vontade com Jenkins como meu "parceiro" de longo prazo no processo de compilação e gostaria de "mover" essa Jenkins para um servidor dedicado.
Antes disso, eu fazia poucas construções e arquivava os artefatos de cada construção. Em particular, o número da compilação é muito importante para o controle de versão.
Como posso exportar todas as informações do Jenkins do meu PC atual para o meu novo servidor?
jenkins
data-migration
huahsin68
fonte
fonte
Respostas:
Seguindo o wiki do Jenkins , você terá que:
chown -R jenkins:jenkins $JENKINS_HOME
JENKINS_HOME é, por padrão localizado na
~/.jenkins
em uma instalação do Linux, mas exatamente para encontrar onde ele está localizado, vá no http: // your_jenkins_url / configure página e verifique o valor do primeiro parâmetro:Home directory
; esse é o JENKINS_HOME.fonte
Caso seu diretório JENKINS_HOME seja muito grande para copiar , e tudo o que você precisa é configurar as mesmas configurações de Jobs, Jenkins Plugins e Jenkins (e não precisar de artefatos e relatórios antigos de Job), então você pode usar o ThinBackup Plugin :
Configurar o diretório de backup em ambos (em Gerenciar Jenkins -> ThinBackup -> Configurações)
Em Sourse Jenkins, vá para ThinBackup -> Backup Now
Se alguns plugins ou trabalhos estiverem ausentes, copie o conteúdo do backup diretamente para o JENKINS_HOME de destino.
Se você tinha autenticação de usuário no Jenkins de origem e agora bloqueado no Jenkins de destino, edite o Jenkins config.xml, defina
<useSecurity>
como false e reinicie o Jenkins.fonte
Isso funcionou para eu passar do Ubuntu 12.04 (Jenkins ver. 1.628) para o Ubuntu 16.04 (Jenkins ver. 1.651.2). Eu instalei o Jenkins a partir dos repositórios .
Copie
JENKINS_HOME
(por exemplo, / var / lib / jenkins) do servidor antigo para o novo. Em um console no novo servidor:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
Inicie seu novo servidor Jenkins
Você pode não precisar disso, mas eu tive que
Manage Jenkins
eReload Configuration from Disk
.Configure System > Jenkins Location
, aJenkins URL
é corretamente atribuída ao novo servidor Jenkins.fonte
/configureSecurity
eu recebojava.lang.AssertionError: InstanceIdentity is missing its singleton
Jenkins Server Automation:
Passo 1:
Configure um repositório para armazenar a casa Jenkins (tarefas, configurações, plug-ins, etc.) em um repositório local do GitLab ou privado do GitHub e mantenha-o atualizado regularmente, pressionando todas as novas alterações nas tarefas, plug-ins, etc.
Passo 2:
Configure um grupo de host / função Puppet para o Jenkins que possa ser usado para ativar novos servidores Jenkins. Faça toda a configuração básica em uma receita do Puppet e certifique-se de instalar a versão mais recente do Jenkins e de configurar um diretório / montagem separado para
JENKINS_HOME
.Etapa 3:
Gire uma nova máquina usando a configuração Jenkins-puppet acima. Quando tudo estiver instalado, pegue / clone a configuração do Jenkins do repositório Git para o diretório doméstico do Jenkins e reinicie o Jenkins.
Passo 4:
Vá para o URL Jenkins, Gerenciar Jenkins → Gerenciar plug - ins e atualize todos os plug-ins que exigem uma atualização.
Feito
Você pode usar o Docker Swarm ou o Kubernetes para dimensionar automaticamente os nós escravos.
fonte
Às vezes, podemos não ter acesso a uma máquina Jenkins para copiar uma pasta diretamente para outra instância do Jenkins. Então, escrevi um utilitário orientado a menus que usa as chamadas da API REST do Jenkins para instalar plug-ins e trabalhos de uma instância do Jenkins para outra.
Para migração de plug-ins:
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
você obterá a lista de plugins instalados com sua versão.Você pode enviar uma solicitação POST com os seguintes parâmetros para instalar esses plug-ins.
Para migração de tarefas:
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
.Criei um utilitário orientado a menus no Python, que solicita ao usuário que inicie a migração de plugins ou Jenkins e usa chamadas da API REST Jenkins para fazer isso.
Você pode consultar o JenkinsMigration.docx a partir deste URL Jenkinsjenkinsmigrationjenkinsrestapi
fonte