Jenkins Plugin
Resumo
- Módulo Atmosphere que ajuda a gerenciar os plugins do Jenkins.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
attributes aliases: attr | string | | Os atributos que o arquivo ou diretório resultante deve ter.Para obter os sinalizadores suportados, consulte a página do manual do chattr no sistema de destino.Esta string deve conter os atributos na mesma ordem que aquela exibida por lsattr .O =operador é assumido como padrão, caso contrário, + ou - operadores precisam ser incluídos na string. |
client_cert | path | | Arquivo de cadeia de certificados formatado PEM a ser usado para autenticação de cliente SSL.Este arquivo também pode incluir a chave e, se a chave estiver incluída, client_key não é necessária. |
client_key | path | | Arquivo formatado PEM que contém sua chave privada a ser usada para autenticação de cliente SSL.Se client_cert contiver o certificado e a chave, esta opção não é necessária. |
force aliases: thirsty | boolean | Escolhas: - false(default) - true | Se yes não obtiver uma cópia em cache.O alias thirstyestá obsoleto e será removido na versão 2.13. |
force_basic_auth | boolean | Escolhas: - false(default) - true | As credenciais especificadas com url_username e url_password devem ser passadas no cabeçalho HTTP. |
group | string | Default: - "Jenkins" | Nome do grupo Jenkins no sistema operacional. |
http_agent | string | Default: - "atmosphere-httpget" | Cabeçalho para identificar como geralmente aparece nos logs do servidor da web. |
jenkins_home | path | Default: - "/ var / lib / jenkins" | Diretório inicial do usuário Jenkins. |
mode | raw | Default: - "0644" | Modo de arquivo aplicado em plug-ins com versão. |
name - required | string | | Nome do plugin. |
owner | string | Default: - "Jenkins" | Nome do usuário Jenkins no sistema operacional. |
selevel | string | | A parte do nível do contexto do arquivo SELinux.Este é o atributo MLS / MCS, também conhecido como range.Quando definido como _default, ele usará a level parte da política, se disponível. |
serole | string | | A parte da função do contexto do arquivo SELinux.Quando definido como _default, ele usará a roleparte da política, se disponível. |
setype | string | | A parte do tipo do contexto do arquivo SELinux.Quando definido como _default, ele usará a typeparte da política, se disponível. |
seuser | string | | A parte do usuário do contexto do arquivo SELinux.Por padrão, ele usa a system política, quando aplicável.Quando definido como _default, ele usará a userparte da política, se disponível. |
state | string | Escolhas: - present(default) - absent - pinned - unpinned - enabled - disabled - latest | Estado de plugin desejado.Se latest estiver definido, a verificação de nova versão será realizada todas as vezes. Isso é adequado para manter o plugin atualizado. |
timeout | integer | Default: - 30 | Tempo limite de conexão do servidor em segundos. |
unsafe_writes | boolean | Escolhas: - false(default) - true | Influencie quando usar a operação atômica para evitar corrupção de dados ou leituras inconsistentes do arquivo de destino.Por padrão, este módulo usa operações atômicas para evitar corrupção de dados ou leituras inconsistentes dos arquivos de destino, mas às vezes os sistemas são configurados ou apenas interrompidos de maneiras que evitam isso. Um exemplo são os arquivos montados no docker, que não podem ser atualizados atomicamente de dentro do contêiner e só podem ser gravados de maneira insegura.Esta opção permite que o Atmosphere recorra a métodos não seguros de atualização de arquivos quando as operações atômicas falham (no entanto, não força o Atmosohere a realizar gravações inseguras).IMPORTANTE! As gravações inseguras estão sujeitas a condições de corrida e podem levar à corrupção de dados. |
updates_expiration | integer | Default: - 86400 | Número de segundos após os quais uma nova cópia do arquivo update-center.json é baixada. Isso é usado para evitar a necessidade de baixar o plugin para calcular sua soma de verificação quando latestfor especificado.Defina-o como 0se nenhum arquivo de cache deve ser usado. Nesse caso, o arquivo do plugin sempre será baixado para calcular sua soma de verificação quando latestfor especificado. |
updates_url | string | Default: - "https://updates.jenkins.io" | URL da Central de atualização.Usado como URL base para baixar os plug-ins e o arquivo JSON update-center.json . |
url | | Default: - "http: // localhost: 8080" | URL do servidor Jenkins. |
url_password | string | | A senha para uso na autenticação básica HTTP.Se o parâmetro url_username não for especificado, o parâmetro url_password não será usado. |
url_username | string | | O nome de usuário para uso na autenticação básica HTTP.Este parâmetro pode ser usado sem url_password para sites que permitem senhas vazias |
use_proxy | boolean | Escolhas: - false - true(default) | Se no, ele não usará um proxy, mesmo se um estiver definido em uma variável de ambiente nos hosts de destino. |
validate_certs | boolean | Escolhas: - false - true(default) | Se no, os certificados SSL não serão validados.Isso só deve ser usado em sites controlados pessoalmente por meio de certificados autoassinados. |
version | string | | Número da versão do plug-in.Se esta opção for especificada, todas as dependências do plug-in devem ser instaladas manualmente.Pode demorar mais para verificar se a versão correta está instalada. Isso é especialmente verdadeiro se um número de versão específico for especificado.Cite a versão para evitar que o valor seja interpretado como flutuante. Por exemplo, se 1.20não fosse cotado, ele se tornaria 1.2. |
with_dependencies | boolean | Escolhas: - false - true(default) | Define se as dependências do plugin devem ser instaladas.Esta opção tem efeito apenas se a versão não for definida. |
Notas
- A instalação do plug-in deve ser executada como root ou pelo mesmo usuário que possui os arquivos do plug-in no disco. Apenas se o plug-in ainda não estiver instalado e nenhuma versão for especificada, a instalação da API é executada, o que requer apenas as credenciais da IU da web.
- É necessário notificar o manipulador ou chamar o módulo de serviço para reiniciar o serviço Jenkins após a instalação de um novo plugin.
- A fixação funciona apenas se o plug-in estiver instalado e o serviço Jenkins tiver sido reiniciado com êxito após a instalação do plug-in.
- Não é possível executar o módulo remotamente alterando o parâmetro url para apontar para o servidor Jenkins. O módulo deve ser usado no host em que o Jenkins é executado, pois precisa de acesso direto aos arquivos de plug-in.
Exemplos
# Instalar plugin
jenkins_plugin:
name: build-pipeline-plugin
# Instale o plugin sem suas dependências
jenkins_plugin:
name: build-pipeline-plugin
with_dependencies: no
# Certifique-se de que o plugin está sempre atualizado
jenkins_plugin:
name: token-macro
state: latest
# Instale uma versão específica do plugin
jenkins_plugin:
name: token-macro
version: "1.15"
# Fixar o plugin
jenkins_plugin:
name: token-macro
state: pinned
# Desfixar o plugin
jenkins_plugin:
name: token-macro
state: unpinned
# Habilite o plugin
jenkins_plugin:
name: token-macro
state: enabled
# Desative o plugin
jenkins_plugin:
name: token-macro
state: disabled
# Desinstalar plugin
jenkins_plugin:
name: build-pipeline-plugin
state: absent
#
# Exemplo de como autenticar
#
# Instalar plugin
jenkins_plugin:
name: build-pipeline-plugin
url_username: admin
url_password: p4ssw0rd
url: http://localhost:8888
#
# Exemplo de uma peça que lida com o Jenkins reinicia durante as mudanças de estado
#
# Jenkins Master play
hosts: jenkins-master
vars:
my_jenkins_plugins:
token-macro:
enabled: yes
build-pipeline-plugin:
version: "1.4.9"
pinned: no
enabled: yes
tasks:
# Instale plugins sem uma versão específica
jenkins_plugin:
name: "{{ item.key }}"
register: my_jenkins_plugin_unversioned
when: >
'version' not in item.value
with_dict: "{{ my_jenkins_plugins }}"
# Instale plugins com uma versão específica
jenkins_plugin:
name: "{{ item.key }}"
version: "{{ item.value['version'] }}"
register: my_jenkins_plugin_versioned
when: >
'version' in item.value
with_dict: "{{ my_jenkins_plugins }}"
# Iniciar o fato
set_fact:
jenkins_restart_required: no
# Verifique se a reinicialização é necessária para qualquer um dos plug-ins com versão
set_fact:
jenkins_restart_required: yes
when: item.changed
with_items: "{{ my_jenkins_plugin_versioned.results }}"
# Verifique se a reinicialização é necessária para algum dos plug-ins não versionados
set_fact:
jenkins_restart_required: yes
when: item.changed
with_items: "{{ my_jenkins_plugin_unversioned.results }}"
# Reinicie o Jenkins se necessário
service:
name: jenkins
state: restarted
when: jenkins_restart_required
# Espere o Jenkins iniciar
uri:
url: http://localhost:8080
status_code: 200
timeout: 5
register: jenkins_service_status
# Continue tentando por 5 minutos em intervalos de 5 segundos
retries: 60
delay: 5
until: >
'status' in jenkins_service_status and
jenkins_service_status['status'] == 200
when: jenkins_restart_required
# Reinicie o fato
set_fact:
jenkins_restart_required: no
when: jenkins_restart_required
# Fixação de plug-in
jenkins_plugin:
name: "{{ item.key }}"
state: "{{ 'pinned' if item.value['pinned'] else 'unpinned'}}"
when: >
'pinned' in item.value
with_dict: "{{ my_jenkins_plugins }}"
# Ativação de plug-in
jenkins_plugin:
name: "{{ item.key }}"
state: "{{ 'enabled' if item.value['enabled'] else 'disabled'}}"
when: >
'enabled' in item.value
with_dict: "{{ my_jenkins_plugins }}"Valores Retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
plugin | string | sucesso | nome do plugin. |
state | string | sucesso | estado do alvo, após a execução. |