lean_delivery.jenkins

Jenkins 2 安装

许可证 构建状态 构建状态 Galaxy Ansible Ansible

概要

该角色:

  • 在 Ubuntu、CentOS 7、RHEL 7 上安装 Jenkins 2
  • 进行最小配置(例如,SMTP 配置、插件安装)

角色任务

  • 安装 Jenkins
  • 安装插件
  • 通过 JCasC 配置插件
    • 通过 JCasC 配置 SMTP 设置
    • 通过 JCasC 添加凭证
  • 通过 Groovy 脚本配置插件
    • 通过 Groovy 脚本配置 SMTP 设置
    • 通过 Groovy 脚本添加凭证
  • 生成 SSH 密钥并将其复制到从服务器

要求

  • 安装所需的 Ansible 最低版本:2.7
  • Java 8 构建状态
  • 支持的操作系统
    • CentOS
      • 8
    • RHEL
      • 8
    • Amazon Linux 2
    • Ubuntu 18
    • Debian 9

角色变量


Jenkins 配置

  • jenkins2_user - 用于 Jenkins 启动的操作系统用户和组
    默认值:jenkins
  • jenkins2_package_version - 用于 Jenkins 安装的包名
    默认值:jenkins
  • jenkins2_release_line - 要安装的包版本:稳定版或最新版本
    默认值:stable
  • jenkins2_disable_gpg_check - 跳过 gpg 检查(仅适用于 yum)
    默认值:false
  • jenkins2_key_validate_certs - 在安装密钥时验证证书(仅适用于 yum)
    默认值:true
  • jenkins2_context_path - Jenkins 上下文路径
    默认值:''
  • jenkins2_cli_username - 用于 Jenkins CLI 连接的用户
    默认值:admin
  • jenkins2_cli_password - 用于 Jenkins CLI 连接的用户密码
    默认值:admin
  • jenkins2_home_directory - Jenkins 存储其配置和工作文件的目录(检出、构建报告、工件等)
    默认值:/var/lib/jenkins

Jenkins 配置参数:用于 /etc/sysconfig/jenkins 或 /etc/default/jenkins

  • jenkins2_config_java_cmd - 用于运行 Jenkins 的 Java 可执行文件
    默认值:''
  • jenkins2_config_java_options - 运行 Jenkins 时传递给 Java 的选项。
    默认值:-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false -Dmail.smtp.starttls.enable='true' -Dhudson.slaves.WorkspaceList=_
  • jenkins2_config_http_port - Jenkins 监听的端口。
    默认值:8080
  • jenkins2_config_listen_address - Jenkins 监听 HTTP 请求的 IP 地址。默认是所有接口(0.0.0.0)。
    默认值:''
  • jenkins2_config_debug_level - 日志调试级别 -- 值越高,日志越详细。5 为 INFO。
    默认值:5
  • jenkins2_config_enable_access_log - 是否启用访问日志。
    默认值:no
  • jenkins2_config_handler_max - HTTP 工作线程的最大数量。
    默认值:100
  • jenkins2_config_handler_idle - 最大空闲 HTTP 工作线程数量。
    默认值:20
  • jenkins2_config_args - 传递给 Jenkins 的任意参数。完整选项列表:java -jar jenkins.war --help
    默认值:''

启用 HTTPS

  • jenkins2_https_enabled - 是否使用安全连接。
    默认值:true
  • jenkins2_http_disabled - 禁用不安全连接。
    默认值:false
  • jenkins2_config_https_port - Jenkins 的安全连接端口(https)。
    默认值:8443
  • jenkins2_local_keystore - 如果为真 - 则在 Ansible 主机上搜索 {{ jenkins2_local_keystore_path }} 中的密钥库。如果为假 - 则检查远程主机上的密钥库。 默认值:false
  • jenkins2_local_keystore_path - 本地密钥库文件的路径(为避免创建自签名的证书)
    默认值:{{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}
  • jenkins2_ssl_configure - 是否为 Jenkins 配置 SSL 连接。
    默认值:true
  • jenkins2_ssl_key_store_name - 密钥库文件名。如果在角色文件夹/files中存在该名称的文件,则将其用作密钥库。
    默认值:jenkins2-ssl.keystore.jks
  • jenkins2_ssl_key_size - 证书密钥大小。
    默认值:4096
  • jenkins2_ssl_key_store_password - 密钥库密码。
    默认值:123456
  • jenkins2_ssl_key_store - 密钥库文件的完整路径。
    默认值:'{{ jenkins2_home_directory }}/{{ jenkins2_ssl_key_store_name }}'
  • jenkins2_ssl_certificate_provider - 仅适用于 Linux 操作系统。 https://docs.ansible.com/ansible/latest/openssl_certificate_module.html。
    默认值:selfsigned

证书

  • jenkins2_ca_domain - 证书域名。
    默认值:example.com
  • jenkins2_local_pkey_file_name - 私钥文件名。
    默认值:{{ ansible_hostname }}.ca-pkey.pem
  • jenkins2_local_cert_file_name - 公钥文件名。
    默认值:{{ ansible_hostname }}.ca-cert.pem

Jenkins 代理配置

  • jenkins2_proxy_url - 用于插件下载配置的代理 URL
    默认值:''
  • jenkins2_proxy_host - 代理服务器主机名
    默认值:''
  • jenkins2_proxy_port - 代理服务器端口
    默认值:0
  • jenkins2_proxy_username - 代理连接的用户名
    默认值:''
  • jenkins2_proxy_password - 代理连接的密码
    默认值:''
  • jenkins2_proxy_no_proxy_hosts - 跳过代理的主机
    默认值:''

SSH 密钥生成配置

  • jenkins2_ssh_keys_generate - 添加在 Jenkins 用户下生成 SSH 密钥对的能力
    默认值:false
  • jenkins2_ssh_keys_private_keyname - 私钥名称
    默认值:id_rsa
  • jenkins2_ssh_keys_size - SSH RSA 密钥强度大小
    默认值:4096
  • jenkins2_ssh_keys_inv_slave_groupname - 清单文件中的从属组名称
    默认值:jenkins_ssh_slaves

Jenkins 配置方式

  • jenkins2_configure_by_casc - 通过 JCasC 设置配置 jenkins2_configure_by_groovy 应该设置为 false 默认值:true
  • jenkins2_jcasc_directory - JCasC 将搜索 YAML 文件的相对路径 默认值:jcasc
  • jenkins2_jcasc_config - JCasC 的配置,可以按照原样从现有配置中复制并粘贴到此变量中 有时从 Jenkins UI 复制的配置无法加载,需先进行测试

如果选定了 jenkins2_configure_by_casc,则不应使用以下配置:

  - 全局工具配置
  - SMTP 设置
  - Jenkins 插件配置
  - 凭证配置
  - Bitbucket 项目配置
  - SonarQube 配置
  - 自定义文件拷贝
  - GitLab 配置
  - GitHub 配置
  - Jira 配置
  - EC2 插件配置
  - 安全和授权配置
  - 默认 `active-directory` 插件配置
  - 默认 `LDAP` 插件配置

仅使用 JCasC 配置!请参阅下面的示例剧本

  • jenkins2_configure_by_groovy - 通过 Groovy 设置配置,可以使用此选项,如果通过 Groovy 配置更方便 jenkins2_configure_by_casc 应该设置为 false 默认:false

全局工具配置

  • jenkins2_globaltools_enable - 启用所有全局工具的自动配置
    默认值:false
  • jenkins2_globaltools_jdk_enable - 启用 JDK 的自动配置
    默认值:true
  • jenkins2_globaltools_jdk_version - JDK 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_jdk_cred_user - Oracle 存储库的用户名
    默认值:'user'
  • jenkins2_globaltools_jdk_cred_password - Oracle 存储库的密码
    默认值:'password'
  • jenkins2_globaltools_jdk_template - JDK 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/jdk.groovy
  • jenkins2_globaltools_maven_enable - 启用 Maven 的自动配置
    默认值:true
  • jenkins2_globaltools_maven_version - Maven 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_maven_template - Maven 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/maven.groovy
  • jenkins2_globaltools_ant_enable - 启用 Ant 的自动配置
    默认值:true
  • jenkins2_globaltools_ant_version - Ant 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_ant_template - Ant 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/ant.groovy
  • jenkins2_globaltools_nodejs_enable - 启用 Node.js 的自动配置
    默认值:true
  • jenkins2_globaltools_nodejs_version - Node.js 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_nodejs_template - Node.js 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/nodejs.groovy
  • jenkins2_globaltools_sonarscanner_enable - 启用 SonarQube Scanner 的自动配置
    默认值:true
  • jenkins2_globaltools_sonarscanner_version - SonarQube Scanner 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_sonarscanner_template - SonarQube 扫描器配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/sonarscanner.groovy
  • jenkins2_globaltools_sonarscannermsbuild_enable - 启用 SonarQube Scanner for MSBuild 的自动配置
    默认值:true
  • jenkins2_globaltools_sonarscannermsbuild_version - SonarQube Scanner for MSBuild 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_sonarscannermsbuild_template - SonarQube 扫描器 for MSBuild 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/sonarscannermsbuild.groovy
  • jenkins2_globaltools_gradle_enable - 启用 Gradle 的自动配置
    默认值:true
  • jenkins2_globaltools_gradle_version - Gradle 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_gradle_template - Gradle 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/gradle.groovy
  • jenkins2_globaltools_docker_enable - 启用 Docker 的自动配置
    默认值:true
  • jenkins2_globaltools_docker_version - Docker 的版本列表(以列表形式定义)
    默认值:[]
  • jenkins2_globaltools_docker_template - Docker 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/docker.groovy

SMTP 设置

  • jenkins2_smtp_enabled - 设置 SMTP 配置
    默认值:true
  • jenkins2_smtp_sysad_email - Jenkins 管理员邮箱
    默认值:[email protected]
  • jenkins2_smtp_user - Jenkins 管理员邮箱
    默认值:[email protected]
  • jenkins2_smtp_password - SMTP 用户密码
    默认值:password
  • jenkins2_smtp_port - SMTP 服务器端口
    默认值:587
  • jenkins2_smtp_host - SMTP 服务器主机名
    默认值:smtp.office365.com

Jenkins 插件配置

  • jenkins2_updates_url - 更新中心的 URL。作为下载插件和 update-center.json JSON 文件的基URL。
    默认值:https://updates.jenkins.io
  • jenkins2_plugins_timeout - 插件安装超时
    默认值:2000
  • jenkins2_plugins_list - 插件列表(将与建议的列表合并)
    默认值:[]
  • jenkins2_plugins_version - 使能以指定版本号。所有插件依赖项必须在 jenkins2_plugins_dict 中提供。
    默认值:false
  • jenkins2_plugins_install_dependencies - 如果未提供确切的插件版本,则安装插件依赖项。
    默认值:true
  • jenkins2_plugins_dict - 如果启用了版本,则使用字典代替列表。如果值被解释为浮点数,引用版本。示例:ssh-slaves: '1.30.0' 默认值:{}
    jenkins2_plugins_version: false

凭证配置

  • jenkins2_credentials_enabled - 添加凭证
    默认值:true
  • jenkins2_credentials - 凭证映射

管道库配置

  • jenkins2_pipeline_libraries_enabled - 配置全局管道库
    默认值:false
  • jenkins2_pipeline_libraries_name - 在 @Library 注释中使用的库名称
    默认值:Pipeline_Libraries
  • jenkins2_pipeline_libraries_url - 远程代码库的 URL
    默认值:''
  • jenkins2_pipeline_libraries_version - 脚本未选择其他版本时加载的库的默认版本。可以是分支名称、标签、提交哈希等,具体取决于 SCM。
    默认值:'master'

Bitbucket 项目配置

  • jenkins2_bitbucket_project_enabled - 配置 Bitbucket 团队/项目
    默认值:false
  • jenkins2_bitbucket_project_owner - Bitbucket 团队或 Bitbucket 用户帐户的名称。如果使用 Bitbucket Server,该项目也可以是 Bitbucket 项目。在这种情况下(Bitbucket Server):使用项目密钥,而不是项目名称。如果使用用户帐户而不是项目,则在用户名前添加字符 "",即"joe"。
    默认值:Bitbucket_Project_Owner
  • jenkins2_bitbucket_project_repo_regexp - 用于限制仓库名称的 Java 正则表达式。不匹配所提供正则表达式的仓库名称将被忽略。
    默认值:''
  • jenkins2_bitbucket_project_discover_branches_strategy - 确定发现哪些分支。1 - 排除也作为 PR 提交的分支,2 - 仅提交为 PR 的分支,3 - 所有分支。
    默认值:1
  • jenkins2_bitbucket_project_discover_pr_strategy - 确定如何发现拉取请求。1 - 将拉取请求与当前目标分支修订合并,2 - 当前拉取请求修订,3 - 当前拉取请求修订与合并的当前目标分支修订。
    默认值:1
  • jenkins2_bitbucket_project_scan_interval - 允许在上次索引后的最大时间量,超出此时间将触发索引。 默认值:60
  • jenkins2_bitbucket_project_autobuild_branches - 匹配的分支将被自动触发。
    默认值:'master|develop|PR-[0-9]+'

SonarQube 配置

  • jenkins2_sonarqube_enabled - 添加 SonarQube 配置
    默认值:false
  • jenkins2_sonarqube_name - SonarQube 名称
    默认值:SonarQube
  • jenkins2_sonarqube_url - SonarQube 服务器 URL
    默认值:http://localhost:9000
  • jenkins2_sonarqube_token - SonarQube 身份验证令牌。在禁用匿名访问时是必需的。
    默认值:''
  • jenkins2_sonarqube_maven_plugin - sonar-maven-plugin 的版本。如果没有指定,目标将是 sonar:sonar。
    默认值:''
  • jenkins2_sonarqube_arguments - 将传递给 SonarQube 扫描器的其他命令行参数。例如,-X。
    默认值:''
  • jenkins2_sonarqube_analysis_properties - 以键值对形式传递的其他分析属性。例如,sonar.analysis.mode=issues。
    默认值:''

自定义文件复制

  • jenkins2_custom_files_enabled - 将自定义文件复制到 Jenkins
    默认值:false
  • jenkins2_custom_files - 带有文件参数的映射
    默认值: log_parser: src: '{{ role_path }}/files/pipeline_error_in_init_console' dest: '{{ jenkins2_home_directory }}' owner: '{{ jenkins2_user }}' group: '{{ jenkins2_user }}' mode: '0755'

GitLab 配置

  • jenkins2_gitlab_enabled - 启用 GitLab 配置
    默认值:false
  • gitlab_external_url - GitLab 外部 URL
    默认值:https://localhost
  • jenkins2_gitlab_token_cred - GitLab 令牌 ID(来自凭证:下面的 gitlabtoken 示例)
    默认值:gitlab_token

GitHub 配置

  • jenkins2_github_enabled - 启用 GitHub 配置
    默认值:false
  • github_external_url - GitHub 外部 URL
    默认值:https://localhost
  • github_manage_hooks - 管理 GitHub 钩子
    默认值:true
  • github_client_cache_size - GitHub 客户端缓存大小
    默认值:20
  • jenkins2_github_token_cred - GitHub 令牌 ID(来自凭证:下面的 secrettext 示例)
    默认值:github_token

Jira 配置

  • jenkins2_jira_enabled - 启用 Jira 配置
    默认值:false
  • jenkins2_jira_url - Jira URL
    默认值:https://jira.example.com
  • jenkins2_jira_alternative_url - Jira 替代 URL
    默认值:https://jira.example.com
  • jenkins2_jira_use_http_auth - 此选项强制 Jenkins 使用 HTTP 基本身份验证连接到 Jira,而不是通过 RPC 登录
    默认值:true
  • jenkins2_jira_support_wiki_notation - 如果为真,Jira 将支持注释中的 Wiki 表示法。当为真时,Jenkins 将发布利用 Wiki 表示法的注释。如果为假,Jenkins 仅会发布纯文本注释
    默认值:true
  • jenkins2_jira_record_scm_changes - 如果为真,SCM 更改将被记录在 Jira 中:链接到 SCM 仓库浏览器和路径更改
    默认值:false
  • jenkins2_jira_disable_changelog_annotations - 禁用在更改集上创建 Jira 超链接
    默认值:false
  • jenkins2_jira_issue_pattern - 可以定义自己的模式来在 SCM 日志中搜索 Jira 问题 ID
    默认值:PATTERN.*
  • jenkins2_jira_update_relevant_issues - 如果为假,则仅在构建成功或不稳定时更新问题。如果为真,相关的 Jira 问题将始终更新,无论构建结果如何
    默认值:true
  • jenkins2_jira_credentials_id - Jira 的 Jenkins 凭证 ID
    默认值:jirauser
  • jenkins2_jira_connection_timeout - Jira REST API 调用的连接超时(以秒为单位)
    默认值:10
  • jenkins2_jira_read_timeout - Jira REST API 调用的读取超时(以秒为单位)
    默认值:30
  • jenkins2_jira_thread_executor_size - 查询 Jira 的线程池执行程序的大小
    默认值:10
  • jenkins2_jira_visible_for_group - 输入具有查看注释权限的 Jira 组名称,留空以使所有 Jira 用户可查看注释
    默认值:``
  • jenkins2_jira_visible_for_project_role - 输入具有查看注释权限的 Jira 项目角色名称,留空以使所有 Jira 用户可查看注释
    默认值:``
  • jenkins2_jira_add_timestamps_for_comments - 如果为真,SCM 更改条目的日期和时间将记录在 Jira 中
    默认值:true
  • jenkins2_jira_timestamp_format - 有关帮助,请参见 SimpleDateFormat 的 javadoc。如果未设置,将使用当前区域的 DateFormat.SHORT。
    默认值:EEE, d MMM yyyy HH:mm:ss Z

启用宽松脚本安全插件

  • jenkins2_permissive_script_enabled - 启用宽松脚本安全。
    默认值:true

种子作业配置

有关 DSL 的更多信息 https://jenkinsci.github.io/job-dsl-plugin/ https://github.com/jenkinsci/job-dsl-plugin

  • jenkins2_seed_job_enable - 启用 Jenkins 种子作业
    默认值:false
  • jenkins2_seed_job_template - DSL 模板文件名,未带 .j2 后缀。请记得为模板设置所需的所有变量 默认模板需要以下变量:gitlab_external_url, gitlab_project_group, gitlab_project_name, ci_test_jenkins_slave_label, feature_verification_jenkins_slave_label
    默认值:dsl_hybris_create_job.groovy
  • jenkins2_seed_job_ignore_existing - 忽略现有作业并不重写它们
    默认值:true
  • jenkins2_seed_job_name - Jenkins 种子作业名称
    默认值:'seed_job'

使用变量 jenkins2_credentials 来设置凭证属性

设置 AWS 凭证请设置变量:

  • aws_access_key
  • aws_secret_key

设置 GitLab 连接请设置:

  • gitlab_master_password
  • gitlab_master_username
  • gitlab_master_token

设置 GitHub 连接请设置:

  • github_master_token
jenkins2_credentials_enabled: true # 设置为 false 以禁用凭证配置
jenkins2_credentials:
  slave:
    type: 'password'
    id: 'ci_slave'
    description: '用于 Jenkins 从属的凭证'
    username: 'user'
    password: 'password'
  jira:
    type: 'password'
    id: 'jirauser'
    description: 'Jira 的用户名和密码'
    username: 'jiraUser'
    password: 'JiraUserPassword'
  pipeline_libraries:
    type: 'password'
    id: 'pipeline_libraries'
    description: '管道库的用户名和密码'
    username: 'pipelineLibrariesUser'
    password: 'pipelineLibrariesPassword'
  sshconnection:
    type: 'key'
    keySource: 0
    key: >
      -----BEGIN RSA PRIVATE KEY-----
      在这里可以放置您的私钥, 
      但我们强烈建议将私钥保存在密码库服务中,例如 Ansible-vault 或 Hashicorp-vault 等。
      -----END RSA PRIVATE KEY-----
    id: 'sshagent'
    username: 'hybris'
    passphrase: ''
    description: '用于远程连接的 Hybris 用户凭证'
  cidbsysuser:
    type: 'password'
    id: 'ciDBsysUser'
    description: 'CI 数据库的系统用户'
    username: 'root'
    password: 'Qwerty_123'
  fqa1dbuser:
    type: 'password'
    id: 'fqa1DBuser'
    description: 'fqa1 数据库用户'
    username: 'fqa1user'
    password: 'fqa1password'
  dbtempuser:
    type: 'password'
    id: 'tempDBuser'
    description: '数据切割的数据库用户'
    username: 'DB_TEMP'
    password: 'DB_TEMP'
  gitlab_creds:
    type: 'password'
    id: 'GIT_CREDENTIALS'
    description: 'GitLab 凭证的用户名和密码'
    username: '{{ gitlab_master_username | default("admin") }}'
    password: '{{ gitlab_master_password | default("password") }}'
  jenkinshttpconnectionuser:
    type: 'password'
    id: 'Jenkins_http_connection'
    description: '通过 Jenkins CLI 连接;用于管道语法检查'
    username: '{{ jenkins2_cli_username }}'
    password: '{{ jenkins2_cli_password }}'
  gitlabusertoken:
    type: 'password'
    id: 'GIT_CREDENTIALS_TOKEN'
    description: '用于 GL10.2+ 的 GitLab 令牌,但也可以用于早期版本'
    username: '{{ gitlab_master_username | default("admin") }}'
    password: '{{ gitlab_master_token | default("ToKen12345") }}'
  aws_credentials:
    type: 'password'
    id: 'AWS_CREDENTIALS'
    description: '用于在 AWS 中操作'
    username: '{{ aws_access_key | default("AWSaccessKey") }}'
    password: '{{ aws_secret_key | default("AWSsecretKey") }}'
  gitlabtoken:
    type: 'gitlabtoken'
    id: 'gitlab_token'
    description: '使用令牌的 GitLab 连接'
    token: '{{ gitlab_master_token | default("ToKen12345") }}'
  githubtoken:
    type: 'secrettext'
    id: 'github_token'
    description: '使用令牌的 GitHub 连接'
    token: '{{ github_master_token | default("ToKen12345") }}'
  aws_ec2_credentials:
    type: 'aws_creds'
    id: 'AWS_EC2_CREDS'
    description: '用于 EC2 插件创建从属实例的凭证'
    access_key: '{{ aws_access_key | default("AWSaccessKey") }}'
    sec_key: '{{ aws_secret_key | default("AWSsecretKey") }}'
  bitbucket_project:
    type: 'password'
    id: 'bitbucket_project'
    description: 'Bitbucket 项目的用户名和密码'
    username: 'bitbucketProjectUser'
    password: 'bitbucketProjectPassword'

type 可用选项:

  1. key - 如果要配置 SSH 私钥
  2. password - 如果要配置用户名/密码组合
  3. gitlabtoken - 如果要配置 GitLab 令牌(需要安装 GitLab 插件)
  4. aws_creds - 如果要配置 EC2 凭证(需要安装 EC2 插件)
  5. secrettext - 如果要配置密钥文本类型的令牌(由 GitHub 插件使用,令牌应注册为“admin:repo_hook”,“repo”,“repo:status”的作用域)

keySource 指定私钥提供的方法:

  • 0 - DirectEntryPrivateKeySource. 如果设置了该值,则需将私钥放置在变量 key 中的明文中。
  • 1 - FileOnMasterPrivateKeySource. 如果设置了该值,则需在变量 key 中放置私钥的绝对路径。
  • 2 - UsersPrivateKeySource. 如果设置了该值,Jenkins 将使用 ~/.ssh 中的默认私钥。

EC2 插件配置

jenkins2_ec2_cloud_parameters:
  cloud_name: 'AWS_cloud'
  credentials_id: 'AWS_EC2_CREDS'
  ssh_keys_credentials_id: 'SSH_CREDS'
  instance_cap_str: '2'
  private_key: |
    -----BEGIN RSA PRIVATE KEY-----
    在这里可以放置您的私钥, 
    但我们强烈建议将私钥保存在密码库服务中, 
    例如 Ansible-vault 或 Hashicorp-vault 等。
    -----END RSA PRIVATE KEY-----
  region: 'us-east-1'
  use_instance_profile_for_credentials: false
  role_arn: ''
  role_session_name: ''
jenkins2_ec2_ami_list:
  ci_ami:
    ami: 'ami-AAAAAAAA'
    associatePublicIp: false
    connectBySSHProcess: true
    connectUsingPublicIp: false
    customDeviceMapping: ''
    deleteRootOnTermination: true
    description: 'CI 的 Jenkins 从属'
    ebsOptimized: false
    iamInstanceProfile: ''
    idleTerminationMinutes: '5'
    initScript: ''
    instanceCapStr: '5'
    jvmopts: ''
    labelString: 'ci_slaves'
    launchTimeoutStr: ''
    numExecutors: '1'
    remoteAdmin: 'ec2-user'
    remoteFS: '/opt/jenkins'
    securityGroups: 'sg-11111111'
    stopOnTerminate: false
    subnetId: 'subnet-SSSSSSSS'
    tags:
      - {name: 'Name', value: 'CI Slave'}
      - {name: 'Name2', value: 'CI2 Slave'}
    tmpDir: ''
    type: 't2.medium'
    useEphemeralDevices: true
    usePrivateDnsName: true
    userData: ''
    zone: 'us-east-1a,us-east-1b'
    monitoring: false
    SpotConfiguration:
      enabled: true
      useBidPrice: true
      spotMaxBidPrice: '0.0139'
      spotBlockReservationDuration: '0'
      fallbackToOndemand: false
    t2Unlimited: false
  fv_ami:
    ami: 'ami-BBBBBBBB'
    associatePublicIp: false
    connectBySSHProcess: true
    connectUsingPublicIp: false
    customDeviceMapping: ''
    deleteRootOnTermination: true
    description: 'FV 的 Jenkins 从属'
    ebsOptimized: false
    iamInstanceProfile: ''
    idleTerminationMinutes: '5'
    initScript: ''
    instanceCapStr: '5'
    jvmopts: ''
    labelString: 'ci_slaves'
    launchTimeoutStr: ''
    numExecutors: '1'
    remoteAdmin: 'ec2-user'
    remoteFS: '/opt/jenkins'
    securityGroups: 'sg-11111111'
    stopOnTerminate: false
    subnetId: 'subnet-SSSSSSSS'
    tags:
      - {name: 'Name', value: 'FV Slave'}
    tmpDir: ''
    type: 't2.medium'
    useEphemeralDevices: true
    usePrivateDnsName: true
    userData: ''
    zone: 'us-east-1a,us-east-1b'
    monitoring: false
    SpotConfiguration:
      enabled: false
      useBidPrice: true
      spotMaxBidPrice: '0.0139'
      spotBlockReservationDuration: '0'
      fallbackToOndemand: false
    t2Unlimited: false

安全与授权配置

  • jenkins2_security_enable: 启用 Jenkins 安全。
    默认值:true

  • jenkins2_security_realm: 选择 Jenkins 安全类型。可用:basicldapactive-directory 默认值:'basic'

    默认 active-directory 插件配置

    jenkins2_active_directory_domain_name: 'domain.com'
    jenkins2_active_directory_domain_controller: 'server.domain.com:3268'
    jenkins2_active_directory_site: 'null'
    jenkins2_active_directory_bind_name: '[email protected]'
    jenkins2_active_directory_bind_pass: 'password'
    jenkins2_active_directory_start_tls: true
    jenkins2_active_directory_remove_irrelevant_groups: false
    

    默认 LDAP 插件配置

    jenkins2_ldap_server: 'ldap.server.com:3268'
    jenkins2_ldap_root_dn: 'dc=server,dc=com'
    jenkins2_ldap_user_search_base: ''
    jenkins2_ldap_user_search: 'mail={0}'
    jenkins2_ldap_group_search_base: ''
    jenkins2_ldap_group_search_filter: ''
    jenkins2_ldap_group_membership_filter: 'null'
    jenkins2_ldap_manager_dn: 'CN=User,OU=Auto Users,OU=Service,OU=Managed by Enterprise Admins,DC=server,DC=com'
    jenkins2_ldap_manager_password: 'Pa$$word'
    jenkins2_ldap_inhibit_infer_root_dn: true
    jenkins2_ldap_disable_mail_address_resolver: false
    jenkins2_ldap_display_name_attribute_name: 'displayname'
    jenkins2_ldap_mail_address_attribute_name: 'mail'
    
  • jenkins2_authorization_strategy_configure: 启用授权策略配置
    默认值:true

  • jenkins2_authorization_strategy: 授权策略的类型。可用:logged-inmatrix-based
    默认值:"logged-in"

  • jenkins2_authorization_strategy_logged_in_allow_anonymous_read: 允许匿名读取访问
    默认值:false

=======

  • jenkins2_ssh_keys_slave_hosts - 描述从属主机及其远程 SSH 用户的字典,例如:

    jenkins2_ssh_keys_slave_hosts:

    • host: test-jenkins-s1 users:
      • user1
      • user2

    vars: jenkins2_ssh_keys_slave_hosts: - {host: 'test-jenkins-s1', users: ['user1', 'user2']}

注意:- 请使用保留字用于 vars 方式 - 请使用保留字用于清单方式

示例清单

[jenkins] server.example.com

[jenkins_ssh_slaves] slave1.example.com slave2.example.com

示例剧本

- name: 安装和配置 Jenkins
  hosts: jenkins
  vars:
    jenkins2_ssh_keys_generate: true
    jenkins2_ssh_keys_slave_hosts:
      - {host: 'slave1.example.com', users: ['root', 'jenkins']}
      - {host: 'slave2.example.com', users: ['root', 'jenkins']}
  roles:
    - role: lean_delivery.java
      java_distribution: openjdk
      java_major_version: 11
      transport: repositories
    - role: lean_delivery.jenkins

许可证

Apache 许可证

作者信息

作者:

关于项目

Jenkins installation and configuration

安装
ansible-galaxy install lean_delivery.jenkins
许可证
apache-2.0
下载
27k
拥有者
Simplify by using!