Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
目录
1、介绍
1.1、什么是 Bamboo?
Bamboo 是一个进行持续集成、部署和交付的工具,以下是官网的功能介绍:
构建
像 CI 和构建服务器一样专注于Bamboo上的编码和计数!创建多阶段构建计划、设置触发器以在提交时开始构建,并将代理分配给关键的构建和部署。测试
测试是持续集成的关键部分。在Bamboo中运行自动化测试,可以在每次更改后完全复原您的产品。并行自动化测试可发挥敏捷开发的强大力量,并使得捕捉缺陷变得更加容易和快速。部署
Bamboo为持续交付的“交付”方面提供一流的支持。单调乏味的部署项目会自动发布到每个环境中,同时让您能够使用按环境授予的权限来控制流程。连接
Bamboo拥有与nbspJira Software、Bitbucket 和 Fisheye 的最佳集成。此外,您还可以通过以下方式来增加 CI 管道:从我们的 Marketplace 中的 150 多个插件中进行选择或自己创建!
2、Bamboo 的官网在哪里?
3、如何下载安装?
Bamboo 6.7.1 已经封装到了 Docker 镜像中,如何安装Docker,请参考这篇文章<Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例> 。
以下实例中安装 Bamboo 6.7.1 ,需要用到 MySQL 5.7,如果你已经安装完Docker,可以下载已经做好的 <docker-compose.yml>。文件内容如下,请注意修改/srv/your_folder/my.ini的位置为你下载后的文件位置:
version: '3'
# https://docs.docker.com/compose/compose-file/
# support Docker version 17.05.0-ce
services:
#################################### bamboo ######################################################
##############################
# jira_bamboo_mysql
##############################
jira_bamboo_mysql:
image: "idoall/mysql:5.7"
hostname: jira_bamboo_mysql
ports:
- "6033:3306"
volumes:
- /srv/your_folder/my.ini:/etc/mysql/my.cnf
networks:
- bamboo
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=bamboo
- MYSQL_USER=bamboo
- MYSQL_PASSWORD=bamboo_mshk
- character-set-server=utf8mb4
- collation-server=utf8mb4_bin
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
##############################
# jira_bamboo
##############################
jira_bamboo:
image: "idoall/ubuntu16.04-jira-bamboo:6.7.1"
hostname: jira_bamboo
ports:
- "80:8085"
networks:
- bamboo
depends_on:
- jira_bamboo_mysql
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
# 统一网络设置
networks:
bamboo:
driver: overlay
我们运行以下命令,使用 Docker Stack 的编排服务,来创建 Bamboo 6.7.1 以及 MySQL 5.7 服务:
$ docker stack deploy -c docker-compose.yml mshk_bamboo
Creating network mshk_bamboo_bamboo
Creating service mshk_bamboo_jira_bamboo
Creating service mshk_bamboo_jira_bamboo_mysql
启动成功后,使用下面的命令,可以看到 Bamboo 6.7.1 和 MySQL 5.7 的服务运行状态:
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
jortvvf4593r mshk_crucible_crucible replicated 1/1 idoall/ubuntu16.04-jira-crucible:4.6.1 *:80->8060/tcp
2kaku3m4yjzd mshk_crucible_crucible_mysql replicated 1/1 idoall/mysql:5.7 *:6033->3306/tcp
再等几分钟以后,在<docker-compose.yml>文件中,可以看到,我们对 Bamboo 做了80->8085端口的映射,所以打开:http://localhost ,能够看到如下页面,说明运行成功:
这时的等待是因为
Bamboo的服务需要启动,MySQL 5.7的数据库需要创建。

4、对 Bamboo 进行配置
4.1、获取授权许可
点击 Atlassian ,先获取试用许可证。

在弹出的窗口中,会看到如下界面,输入Organization,确认 Server ID ,然后点击 Generate License:

复制 License Key ,填写到刚才页面中的License key文本框中, 然后点击Custom installation 如下图:

4.2、一般配置
可以在 Name 中设置 Bamboo 的实例名称,在 Base URL 配置你的服务器地址。其他的选项,根据你的情况修改,在这里不做修改。点击 Continue。

4.3、数据库配置
在 Choose a database configuration 选项卡中,Select database 选择 External,然后在下拉列表中,选择 MySQL ,点击 Continue。

数据库连接信息我们在<docker-compose.yml>中已经配置好。在 Database URL 输入 jdbc:mysql://jira_bamboo_mysql/bamboo?autoReconnect=true, 在 User name 输入 bamboo ,在 Password 输入 bamboo_mshk,点击 Continue。
在下一步选择 Create a new Bamboo home,点击 Continue。

4.4、设置管理员帐号和密码
在这一步中,输入管理员帐号、密码、全名、邮件,然后点击 Finish,能够看到欢迎信息。

4.5、查看破解信息
Bamboo 的破解文件已经打包到了 Docker 中。
点击右上角的齿轮->Overview,在最左侧找到 License details,可以看到,持续支持到 2099 年。

5、设置 Bamboo 使用 Crowd 认证
5.1、在 Crowd 中添加 Bamboo 需要用到的用户组
Crowd 的安装,请参考文章:Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录
参考 Crowd 安装中的 4.10章节 ,添加 bamboo-admin 和 bamboo-user 用户组。

5.2、在 Crowd 中添加 Bamboo 应用程序
参考文章<Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录>中的 4.12章节,在 Crowd 中添加 Bamboo 应用程序。点击 Applications->Add application,在 Application type 选择 Bamboo,输入 Name 为 bamboo,Description是Bamboo Application,再设置密码123456,点击Next。

在URL输入设置的Bamboo URL地址,点击 Resolve IP address,会自动解析出 Remote IP address。
选择创建的apps目录,点击Next。
在Director中勾选Allow all users to authenticate点击Next。
最后点击Add Application,新应用添加成功。

5.3、在 Bamboo 中设置 Crowd 的用户目录
第一步:点击右上角的齿轮->Overview,在最左侧找到 User directories,然后点击 Add Directory 在弹出的窗口中选择 Atlassian Crowd ,点击 Next。
第二步:在 Server URL 处输入 Crowd 的URL地址,在 Application Name 处输入刚才设置的 bamboo 应用程序名称 bamboo,在应用程序密码输入刚才我们设置的密码123456,点击 Test Settings,能够看到如下图中有绿色的提示框,提示 Connection test successful.,最后点 Save and Test。
第三步:在 用户目录,可以看到,我们刚添加的 Crowd Server 目录。

调整 Crowd Server 目录的顺序到第一行,调整后的顺序如下:

5.4、启用 Bamboo 与 Crowd 的 SSO 集成登录
5.4.1、修改 crowd.properties 文件
修改 Bamboo 容器中的文件 /home/work/_data/_jira_bamboo/xml-data/configuration/crowd.properties,将 crowd.properties 文件中的内容application.name修改为bamboo,application.password修改为123456,根据你的 Crowd部署情况看是否要修改 application.login.url 和 crowd.server.url,修改后的内容如下:
application.name bamboo
application.password 123456
application.login.url http://localhost:8095/crowd/console/
crowd.server.url http://localhost:8095/crowd/services/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
bamboo.crowd.cache.minutes 60
cookie.tokenkey crowd.token_key
5.4.2、安装 Bamboo 需要的 JAR 文件
将 Crowd 容器目录中的 /home/work/_app/_jira_crowd/client/crowd-integration-client-3.3.2.jar 文件,复制到 Bamboo 容器的 /home/work/_app/_jira_bamboo/atlassian-bamboo/WEB-INF/lib/ 目录下面
如果使用的是 <Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录> 中创建的
Crowd,crowd-integration-client-3.3.2.jar文件已经封装在了Bamboo容器中,执行以下命令进行复制
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_bamboo_jira_bamboo.1`
$ docker exec $CONTAINERNAME sh -c 'cp /usr/src/_bamboo/crowd-integration-client-3.3.2.jar /home/work/_app/_jira_bamboo/atlassian-bamboo/WEB-INF/lib/'
5.4.3、配置 Bamboo 使用 Crowd 认证
设置 Bamboo 的验证授权为 Crowd,修改 /home/work/_app/_jira_bamboo/atlassian-bamboo/WEB-INF/classes/atlassian-user.xml 文件,将 <crowd key="crowd" name="Crowd Repository"/> 取消注释,修改后的内容如下:
<atlassian-user>
<repositories>
<!--LDAP: Uncomment the following block and modify accordingly for LDAP integration-->
<!--<ldap key="adRepository" name="AD Repository" cache="true">-->
<!--<host>host</host>-->
<!--<port>389</port>-->
<!--<securityPrincipal>CN=Administrator,CN=Users,DC=ad,DC=yourorg,DC=com</securityPrincipal>-->
<!--<securityCredential>administrator</securityCredential>-->
<!--<securityProtocol>plain</securityProtocol>-->
<!--<securityAuthentication>simple</securityAuthentication>-->
<!--<baseContext>dc=yourorg,dc=com</baseContext>-->
<!--<baseUserNamespace>CN=Users,DC=ad,DC=yourorg,DC=com</baseUserNamespace>-->
<!--<baseGroupNamespace>CN=Users,DC=ad,DC=yourorg,DC=com</baseGroupNamespace>-->
<!--<usernameAttribute>sAMAccountName</usernameAttribute>-->
<!--<userSearchFilter>(objectClass=person)</userSearchFilter>-->
<!--<firstnameAttribute>givenname</firstnameAttribute>-->
<!--<surnameAttribute>sn</surnameAttribute>-->
<!--<emailAttribute>mail</emailAttribute>-->
<!--<groupnameAttribute>cn</groupnameAttribute>-->
<!--<groupSearchFilter>(objectClass=group)</groupSearchFilter>-->
<!--<membershipAttribute>member</membershipAttribute>-->
<!--</ldap>-->
<hibernate name="Hibernate Repository" key="hibernateRepository" description="Hibernate Repository" cache="true"/>
<!-- CROWD respository -->
<!--
You will need to uncomment the Crowd Repository below to enable Crowd integration. For more information,
please see:
http://confluence.atlassian.com/display/CROWD/Integrating+Crowd+with+Atlassian+Bamboo
You must also comment out the Hibernate Repository above.
-->
<crowd key="crowd" name="Crowd Repository"/>
<!-- END of CROWD repository -->
</repositories>
</atlassian-user>
5.4.4、设置 Bamboo 启用 SSO 登录
修改 /home/work/_app/_jira_bamboo/atlassian-bamboo/WEB-INF/classes/seraph-config.xml文件,将<authenticator class="com.atlassian.bamboo.user.authentication.BambooAuthenticator"/>注释掉,将 <!--<authenticator class="com.atlassian.crowd.integration.seraph.v25.BambooAuthenticator"/>-->的注释取消,修改后的内容如下:
<!-- ================================================================ -->
<!-- The Seraph security configuration. -->
<!-- ================================================================ -->
<security-config>
<parameters>
<init-param>
<param-name>login.url</param-name>
<param-value>/userlogin!doDefault.action?os_destination=${originalurl}</param-value>
</init-param>
<init-param>
<!--
the URL to redirect to when the user explicitly clicks on a login link (rather than being redirected after
trying to access a protected resource). Most of the time, this will be the same value as 'login.url'.
- same properties as login.url above
-->
<param-name>link.login.url</param-name>
<param-value>/userlogin!doDefault.action?os_destination=${originalurl}</param-value>
<!--<param-value>/secure/Dashboard.jspa?os_destination=${originalurl}</param-value>-->
<!--<param-value>http://sso.mycompany.com/login?redirectTo=${originalurl}</param-value>-->
</init-param>
<init-param>
<!-- called by the logout servlet -->
<param-name>logout.url</param-name>
<param-value>/userLogout.action?os_destination=${originalurl}</param-value>
</init-param>
<!-- The key that the original URL is stored with in the session -->
<init-param>
<param-name>original.url.key</param-name>
<param-value>os_security_originalurl</param-value>
</init-param>
<init-param>
<param-name>login.cookie.key</param-name>
<param-value>seraph.bamboo</param-value>
</init-param>
<!-- Specify 3 characters to make cookie encoding unique for your application, to prevent collisions if more than one Seraph-based app is used.-->
<init-param>
<param-name>cookie.encoding</param-name>
<param-value>BAM</param-value>
</init-param>
<!--only basic authentication available-->
<init-param>
<param-name>authentication.type</param-name>
<param-value>os_authType</param-value>
</init-param>
</parameters>
<!-- Determines what roles (permissions) a user has. -->
<rolemapper class="com.atlassian.bamboo.user.authentication.BambooRoleMapper"/>
<!--
<authenticator class="com.atlassian.bamboo.user.authentication.BambooAuthenticator"/>
-->
<controller class="com.atlassian.bamboo.user.authentication.BambooSecurityController"/>
<elevatedsecurityguard class="com.atlassian.bamboo.user.authentication.BambooElevatedSecurityGuard"/>
<!-- If you're authenticating against a Crowd server you can use this authenticator for single sign-on.
Enable it after configuring your Crowd properties through user management and restart Bamboo. It does not support
Crowd property changes at runtime. If you need to switch back to local users, revert the change and
restart Bamboo again.
-->
<authenticator class="com.atlassian.crowd.integration.seraph.v25.BambooAuthenticator"/>
<services>
<!-- Specifies role requirements for accessing specified URL paths -->
<service class="com.atlassian.seraph.service.PathService">
<init-param>
<param-name>config.file</param-name>
<param-value>/seraph-paths.xml</param-value>
</init-param>
</service>
</services>
<interceptors>
<interceptor class="com.atlassian.bamboo.user.authentication.InvalidateSessionDuringLogin"/>
</interceptors>
</security-config>
通过以下命令,重启 Bamboo 容器内的服务,使用在 Crowd 中配置的用户登录,就可以测试效果了。
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_bamboo_jira_bamboo.1`
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_bamboo/bin/stop-bamboo.sh;/home/work/_app/_jira_bamboo/bin/start-bamboo.sh'
博文作者:迦壹
博客地址:Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!
比特币地址:1KdgydfKMcFVpicj5w4vyn3T88dwjBst6Y
以太坊地址:0xbB0a92d634D7b9Ac69079ed0e521CC2e0a97c420
Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录的更多相关文章
- Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录
目录 目录 1.介绍 1.1.什么是 Crucible? 2.Crucible 的官网在哪里? 3.如何下载安装? 4.对 Crucible 进行配置 4.1.破解 Crucible 第一步 4.2. ...
- Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录
目录 目录 1.介绍 1.1.什么是Crowd? 2.Crowd 的官网在哪里? 3.如何下载安装? 4.对 Crowd 进行配置 4.1.破解 Crowd 第一步 4.2.破解 Crowd 第二步, ...
- GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱
GitLab11.3.9 的安装方法: 点击查看. Crowd3.3.2 的安装方法:点击查看. 需要先在 Crowd 创建应用程序,参考 <Docker 创建 Crowd3.3.2 以 ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- Docker创建MySQL集装箱
原文链接:Docker创建MySQL集装箱 这样做的目的是创建一个MySQL的image,出来的容器里自己主动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个文件夹并在文件夹下创建一个Doc ...
- Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版
目录 目录 1.介绍 1.1.什么是 JIRA Core? 1.2.什么是 JIRA SoftWare 2.JIRA 的官网在哪里? 3.如何下载安装? 4.对 JIRA 进行配置 4.1.JIRA ...
- Docker 创建 Confluence6.12.2 中文版
目录 目录 1.介绍 1.1.什么是Confluence? 2.Confluence的官网在哪里? 3.如何下载安装? 4.对 Confluence 进行配置 4.1.设置 Confluence 4. ...
- Docker创建JIRA 7.2.4中文破解版
目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...
- Docker 创建容器 查看容器状态 - 三
Docker 创建容器 1.拉取镜像 默认是 docker.io 仓最新镜像 docker pull tomcat 2.运行一个服务容器 docker run -d -p 0.0.0.0:18080: ...
随机推荐
- Eclipse4JavaEE安装Gradle,并导入我们的Gradle项目
第一步:下载Gradle Gradle下载链接,如下图,下载最新版本即可.下载下来的zip包,解压到一个目录即可,如F盘 第二步:配置环境变量 首先添加GRADLE_HOME,如下图 然后在Path下 ...
- headfirst设计模式(9)—模板方法模式
前言 这一章的模板方法模式,个人感觉它是一个简单,并且实用的设计模式,先说说它的定义: 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下, ...
- 基于ArcGISServer进行分页矢量查询的方案进阶
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在空间查询中,我们对查询结果要求以分页形式进行展示.G ...
- 【原】无脑操作:Centos 7后台运行及终止jar包程序
1.后台运行jar包程序,输入:nohup java -jar /路径/程序.jar & 2.后台终止jar包程序,输入:ps -ef | grep java,查看使用java命令的进程,再输 ...
- 管道及I/O重定向
管道及IO 重定向 > < >> <<计算机组成: 运算器,控制器:CPU 存储器:RAM 输入/输出设备 I/O 程序: 指令和数据 控制器:指令 运算器: 存储 ...
- perlin噪声
手贱去点了图形学里面的噪声课程,然后一个周末就交代在这上面了,还是有些云里雾里. 噪声就是给定一个输入变量,生成一个值在0~1范围内的伪随机变量的函数.在图形学中一般是输入一个坐标得到一个范围在0~1 ...
- 使用FakeAPP进行AI换脸必看!!
C盘生于容量小于5G的千万别用啊!!笔者本人因为C盘只剩了3G,根本用不上这个,最后会把大小为4G的core文件必须移植到C盘当中,俺的CUDA也白安装了,而且还不小心安装成CUDA8了,应该用9好么 ...
- Java 钩子函数编程技巧
Java提供注册钩子线程,在JVM进程关闭之前,会自动执行这个钩子线程. 运用这个技巧,可以再JVM关闭之前,释放一些系统资源. 这个功能利用的是Runtime类来实现. public class H ...
- 如何使用SignTool签署应用程序包
备注 有关签署UWP应用程序包的信息,请参阅使用SignTool签署应用程序包. 了解如何使用SignTool对Windows应用商店应用包进行签名,以便部署它们.SignTool是Windows软件 ...
- SpringBoot2.0 项目异常日志,但不影响运行(待解决)
第一种: 2019-04-17 01:46:33 [INFO] [org.apache.juli.logging.DirectJDKLog:175] - Error parsing HTTP requ ...