lean_delivery.jenkins
Jenkins 2 安装
概要
该角色:
- 在 Ubuntu、CentOS 7、RHEL 7 上安装 Jenkins 2
- 进行最小配置(例如,SMTP 配置、插件安装)
角色任务
- 安装 Jenkins
- 安装插件
- 通过 JCasC 配置插件
- 通过 JCasC 配置 SMTP 设置
- 通过 JCasC 添加凭证
- 通过 Groovy 脚本配置插件
- 通过 Groovy 脚本配置 SMTP 设置
- 通过 Groovy 脚本添加凭证
- 生成 SSH 密钥并将其复制到从服务器
要求
角色变量
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
可用选项:
key
- 如果要配置 SSH 私钥password
- 如果要配置用户名/密码组合gitlabtoken
- 如果要配置 GitLab 令牌(需要安装 GitLab 插件)aws_creds
- 如果要配置 EC2 凭证(需要安装 EC2 插件)secrettext
- 如果要配置密钥文本类型的令牌(由 GitHub 插件使用,令牌应注册为“admin:repo_hook”,“repo”,“repo:status”的作用域)
keySource
指定私钥提供的方法:
0
- DirectEntryPrivateKeySource. 如果设置了该值,则需将私钥放置在变量key
中的明文中。1
- FileOnMasterPrivateKeySource. 如果设置了该值,则需在变量key
中放置私钥的绝对路径。2
- UsersPrivateKeySource. 如果设置了该值,Jenkins 将使用~/.ssh
中的默认私钥。
EC2 插件配置
jenkins2_ec2_enable
- 启用 Jenkins EC2 插件配置 https://wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin
默认值:false
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 安全类型。可用:basic
,ldap
,active-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-in
,matrix-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']}
- host: test-jenkins-s1
users:
注意:- 请使用
示例清单
[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
许可证
作者信息
作者:
- Lean Delivery 团队 team@lean-delivery.com