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 启动的操作系统用户和组
默认值:jenkinsjenkins2_package_version- 用于 Jenkins 安装的包名
默认值:jenkinsjenkins2_release_line- 要安装的包版本:稳定版或最新版本
默认值:stablejenkins2_disable_gpg_check- 跳过 gpg 检查(仅适用于 yum)
默认值:falsejenkins2_key_validate_certs- 在安装密钥时验证证书(仅适用于 yum)
默认值:truejenkins2_context_path- Jenkins 上下文路径
默认值:''jenkins2_cli_username- 用于 Jenkins CLI 连接的用户
默认值:adminjenkins2_cli_password- 用于 Jenkins CLI 连接的用户密码
默认值:adminjenkins2_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 监听的端口。
默认值:8080jenkins2_config_listen_address- Jenkins 监听 HTTP 请求的 IP 地址。默认是所有接口(0.0.0.0)。
默认值:''jenkins2_config_debug_level- 日志调试级别 -- 值越高,日志越详细。5 为 INFO。
默认值:5jenkins2_config_enable_access_log- 是否启用访问日志。
默认值:nojenkins2_config_handler_max- HTTP 工作线程的最大数量。
默认值:100jenkins2_config_handler_idle- 最大空闲 HTTP 工作线程数量。
默认值:20jenkins2_config_args- 传递给 Jenkins 的任意参数。完整选项列表:java -jar jenkins.war --help
默认值:''
启用 HTTPS
jenkins2_https_enabled- 是否使用安全连接。
默认值:truejenkins2_http_disabled- 禁用不安全连接。
默认值:falsejenkins2_config_https_port- Jenkins 的安全连接端口(https)。
默认值:8443jenkins2_local_keystore- 如果为真 - 则在 Ansible 主机上搜索 {{ jenkins2_local_keystore_path }} 中的密钥库。如果为假 - 则检查远程主机上的密钥库。 默认值:falsejenkins2_local_keystore_path- 本地密钥库文件的路径(为避免创建自签名的证书)
默认值:{{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}jenkins2_ssl_configure- 是否为 Jenkins 配置 SSL 连接。
默认值:truejenkins2_ssl_key_store_name- 密钥库文件名。如果在角色文件夹/files中存在该名称的文件,则将其用作密钥库。
默认值:jenkins2-ssl.keystore.jksjenkins2_ssl_key_size- 证书密钥大小。
默认值:4096jenkins2_ssl_key_store_password- 密钥库密码。
默认值:123456jenkins2_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.comjenkins2_local_pkey_file_name- 私钥文件名。
默认值:{{ ansible_hostname }}.ca-pkey.pemjenkins2_local_cert_file_name- 公钥文件名。
默认值:{{ ansible_hostname }}.ca-cert.pem
Jenkins 代理配置
jenkins2_proxy_url- 用于插件下载配置的代理 URL
默认值:''jenkins2_proxy_host- 代理服务器主机名
默认值:''jenkins2_proxy_port- 代理服务器端口
默认值:0jenkins2_proxy_username- 代理连接的用户名
默认值:''jenkins2_proxy_password- 代理连接的密码
默认值:''jenkins2_proxy_no_proxy_hosts- 跳过代理的主机
默认值:''
SSH 密钥生成配置
jenkins2_ssh_keys_generate- 添加在 Jenkins 用户下生成 SSH 密钥对的能力
默认值:falsejenkins2_ssh_keys_private_keyname- 私钥名称
默认值:id_rsajenkins2_ssh_keys_size- SSH RSA 密钥强度大小
默认值:4096jenkins2_ssh_keys_inv_slave_groupname- 清单文件中的从属组名称
默认值:jenkins_ssh_slaves
Jenkins 配置方式
jenkins2_configure_by_casc- 通过 JCasC 设置配置 jenkins2_configure_by_groovy 应该设置为 false 默认值:truejenkins2_jcasc_directory- JCasC 将搜索 YAML 文件的相对路径 默认值:jcascjenkins2_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- 启用所有全局工具的自动配置
默认值:falsejenkins2_globaltools_jdk_enable- 启用 JDK 的自动配置
默认值:truejenkins2_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.groovyjenkins2_globaltools_maven_enable- 启用 Maven 的自动配置
默认值:truejenkins2_globaltools_maven_version- Maven 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_maven_template- Maven 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/maven.groovyjenkins2_globaltools_ant_enable- 启用 Ant 的自动配置
默认值:truejenkins2_globaltools_ant_version- Ant 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_ant_template- Ant 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/ant.groovyjenkins2_globaltools_nodejs_enable- 启用 Node.js 的自动配置
默认值:truejenkins2_globaltools_nodejs_version- Node.js 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_nodejs_template- Node.js 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/nodejs.groovyjenkins2_globaltools_sonarscanner_enable- 启用 SonarQube Scanner 的自动配置
默认值:truejenkins2_globaltools_sonarscanner_version- SonarQube Scanner 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_sonarscanner_template- SonarQube 扫描器配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/sonarscanner.groovyjenkins2_globaltools_sonarscannermsbuild_enable- 启用 SonarQube Scanner for MSBuild 的自动配置
默认值:truejenkins2_globaltools_sonarscannermsbuild_version- SonarQube Scanner for MSBuild 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_sonarscannermsbuild_template- SonarQube 扫描器 for MSBuild 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/sonarscannermsbuild.groovyjenkins2_globaltools_gradle_enable- 启用 Gradle 的自动配置
默认值:truejenkins2_globaltools_gradle_version- Gradle 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_gradle_template- Gradle 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/gradle.groovyjenkins2_globaltools_docker_enable- 启用 Docker 的自动配置
默认值:truejenkins2_globaltools_docker_version- Docker 的版本列表(以列表形式定义)
默认值:[]jenkins2_globaltools_docker_template- Docker 配置模板文件名,不带 .j2 后缀。请记得为模板设置所需的所有变量 默认值:globaltools/docker.groovy
SMTP 设置
jenkins2_smtp_enabled- 设置 SMTP 配置
默认值:truejenkins2_smtp_sysad_email- Jenkins 管理员邮箱
默认值:[email protected]jenkins2_smtp_user- Jenkins 管理员邮箱
默认值:[email protected]jenkins2_smtp_password- SMTP 用户密码
默认值:passwordjenkins2_smtp_port- SMTP 服务器端口
默认值:587jenkins2_smtp_host- SMTP 服务器主机名
默认值:smtp.office365.com
Jenkins 插件配置
jenkins2_updates_url- 更新中心的 URL。作为下载插件和 update-center.json JSON 文件的基URL。
默认值:https://updates.jenkins.iojenkins2_plugins_timeout- 插件安装超时
默认值:2000jenkins2_plugins_list- 插件列表(将与建议的列表合并)
默认值:[]jenkins2_plugins_version- 使能以指定版本号。所有插件依赖项必须在 jenkins2_plugins_dict 中提供。
默认值:falsejenkins2_plugins_install_dependencies- 如果未提供确切的插件版本,则安装插件依赖项。
默认值:truejenkins2_plugins_dict- 如果启用了版本,则使用字典代替列表。如果值被解释为浮点数,引用版本。示例:ssh-slaves: '1.30.0'默认值:{}
jenkins2_plugins_version: false
凭证配置
jenkins2_credentials_enabled- 添加凭证
默认值:truejenkins2_credentials- 凭证映射
管道库配置
jenkins2_pipeline_libraries_enabled- 配置全局管道库
默认值:falsejenkins2_pipeline_libraries_name- 在 @Library 注释中使用的库名称
默认值:Pipeline_Librariesjenkins2_pipeline_libraries_url- 远程代码库的 URL
默认值:''jenkins2_pipeline_libraries_version- 脚本未选择其他版本时加载的库的默认版本。可以是分支名称、标签、提交哈希等,具体取决于 SCM。
默认值:'master'
Bitbucket 项目配置
jenkins2_bitbucket_project_enabled- 配置 Bitbucket 团队/项目
默认值:falsejenkins2_bitbucket_project_owner- Bitbucket 团队或 Bitbucket 用户帐户的名称。如果使用 Bitbucket Server,该项目也可以是 Bitbucket 项目。在这种情况下(Bitbucket Server):使用项目密钥,而不是项目名称。如果使用用户帐户而不是项目,则在用户名前添加字符 "",即"joe"。
默认值:Bitbucket_Project_Ownerjenkins2_bitbucket_project_repo_regexp- 用于限制仓库名称的 Java 正则表达式。不匹配所提供正则表达式的仓库名称将被忽略。
默认值:''jenkins2_bitbucket_project_discover_branches_strategy- 确定发现哪些分支。1 - 排除也作为 PR 提交的分支,2 - 仅提交为 PR 的分支,3 - 所有分支。
默认值:1jenkins2_bitbucket_project_discover_pr_strategy- 确定如何发现拉取请求。1 - 将拉取请求与当前目标分支修订合并,2 - 当前拉取请求修订,3 - 当前拉取请求修订与合并的当前目标分支修订。
默认值:1jenkins2_bitbucket_project_scan_interval- 允许在上次索引后的最大时间量,超出此时间将触发索引。 默认值:60jenkins2_bitbucket_project_autobuild_branches- 匹配的分支将被自动触发。
默认值:'master|develop|PR-[0-9]+'
SonarQube 配置
jenkins2_sonarqube_enabled- 添加 SonarQube 配置
默认值:falsejenkins2_sonarqube_name- SonarQube 名称
默认值:SonarQubejenkins2_sonarqube_url- SonarQube 服务器 URL
默认值:http://localhost:9000jenkins2_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
默认值:falsejenkins2_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 配置
默认值:falsegitlab_external_url- GitLab 外部 URL
默认值:https://localhostjenkins2_gitlab_token_cred- GitLab 令牌 ID(来自凭证:下面的 gitlabtoken 示例)
默认值:gitlab_token
GitHub 配置
jenkins2_github_enabled- 启用 GitHub 配置
默认值:falsegithub_external_url- GitHub 外部 URL
默认值:https://localhostgithub_manage_hooks- 管理 GitHub 钩子
默认值:truegithub_client_cache_size- GitHub 客户端缓存大小
默认值:20jenkins2_github_token_cred- GitHub 令牌 ID(来自凭证:下面的 secrettext 示例)
默认值:github_token
Jira 配置
jenkins2_jira_enabled- 启用 Jira 配置
默认值:falsejenkins2_jira_url- Jira URL
默认值:https://jira.example.comjenkins2_jira_alternative_url- Jira 替代 URL
默认值:https://jira.example.comjenkins2_jira_use_http_auth- 此选项强制 Jenkins 使用 HTTP 基本身份验证连接到 Jira,而不是通过 RPC 登录
默认值:truejenkins2_jira_support_wiki_notation- 如果为真,Jira 将支持注释中的 Wiki 表示法。当为真时,Jenkins 将发布利用 Wiki 表示法的注释。如果为假,Jenkins 仅会发布纯文本注释
默认值:truejenkins2_jira_record_scm_changes- 如果为真,SCM 更改将被记录在 Jira 中:链接到 SCM 仓库浏览器和路径更改
默认值:falsejenkins2_jira_disable_changelog_annotations- 禁用在更改集上创建 Jira 超链接
默认值:falsejenkins2_jira_issue_pattern- 可以定义自己的模式来在 SCM 日志中搜索 Jira 问题 ID
默认值:PATTERN.*jenkins2_jira_update_relevant_issues- 如果为假,则仅在构建成功或不稳定时更新问题。如果为真,相关的 Jira 问题将始终更新,无论构建结果如何
默认值:truejenkins2_jira_credentials_id- Jira 的 Jenkins 凭证 ID
默认值:jirauserjenkins2_jira_connection_timeout- Jira REST API 调用的连接超时(以秒为单位)
默认值:10jenkins2_jira_read_timeout- Jira REST API 调用的读取超时(以秒为单位)
默认值:30jenkins2_jira_thread_executor_size- 查询 Jira 的线程池执行程序的大小
默认值:10jenkins2_jira_visible_for_group- 输入具有查看注释权限的 Jira 组名称,留空以使所有 Jira 用户可查看注释
默认值:``jenkins2_jira_visible_for_project_role- 输入具有查看注释权限的 Jira 项目角色名称,留空以使所有 Jira 用户可查看注释
默认值:``jenkins2_jira_add_timestamps_for_comments- 如果为真,SCM 更改条目的日期和时间将记录在 Jira 中
默认值:truejenkins2_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 种子作业
默认值:falsejenkins2_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.groovyjenkins2_seed_job_ignore_existing- 忽略现有作业并不重写它们
默认值:truejenkins2_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 安全。
默认值:truejenkins2_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: 启用授权策略配置
默认值:truejenkins2_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
