【不定期更新】
参考来源:
https://concourse-ci.org/install.html#generic-oidc-config
https://www.digitalocean.com/community/tutorials/how-to-install-concourse-ci-on-ubuntu-16-04
concourse作为一个项目CI及CD工具,通过pipeline来进行项目发布及集成的控制管理。笔者也是个萌新,按照官方文档及其他实用资料着手开始搭建及入门学习。
笔者环境:ubuntu 16.4.3LTS
这一部分是按照第二个链接里进行的。我是直接切到root用户操作。
apt install postgresql postgresql-contrib
安装完成后,下面要为postgres建一个用户,并以此用户创建数据库atc(concourse默认要用的库)。
sudo -u postgres createuser concourse
sudo -u postgres createdb --owner=concourse atc
这里sudo -u postgres在我的实践中是必须要加的,不然没有权限执行postgres相关命令。各位自行实践时可能行为不一定一样。
然后使用psql进入postgres命令行模式。
sudo -u postgres
psql \c atc #选择刚才创建的atc数据库
选择atc数据库时会显示You are now connected to database "atc" as user "postgres"。
我个人在这里为刚才创建的concourse用户修改了一个密码,这在后面的quickstart实践中需要用到。
alter user concourse password '123456';
这里仅能使用单引号。
到这里postgresql的配置完成。
这一部分结合上述两个链接进行配置,我直接使用ubuntu的浏览器从官网下载的concourse及fly的编译文件。(没有可视化页面的读者可尝试第二个链接中的方式)
下载完成后进行少许操作
chmod +x concourse* fly*
mv concourse* /usr/local/bin/concourse
mv fly* /usr/local/bin/fly
这时可以用如下命令查看版本
concourse --version fly --version
完成上述主要配置后,可以通过一个长指令来快速启动concourse。先贴上我经实践可用的指令。
concourse quickstart \
--add-local-user test:123456 \
--main-team-local-user test \
--external-url http://roens-ci.test.com \
--worker-work-dir /opt/concourse/worker \
--postgres-user concourse \
--postgres-password 123456
每行反斜杠前的空格必须留。
该指令执行后,会启动concourse的worker及web服务,命令行被占用会打印服务的输出内容。
前四行为官方文档的内容,详情可参阅官方文档。后两行是我自己实践中加的,没有这两行时总会报错:
failed to migrate database: pq: password authentication failed for user "root"
应该是concourse启动时默认用系统用户名去连postgres了。所以加上该两行数据库的用户密码配置,这也是之前修改密码的原因。
是否能用空密码作为配置笔者未尝试,读者可以自行尝试。
可以在本机使用127.0.0.1:8080登陆concourse的web页面,或者在其他内网机器使用ip:8080打开。
创建了一个/etc/concourse文件夹用于存放生成的密钥。
sudo ssh-keygen -t rsa -N '' -f /etc/concourse/tsa_host_key
sudo ssh-keygen -t rsa -N '' -f /etc/concourse/worker_key
sudo ssh-keygen -t rsa -N '' -f /etc/concourse/session_signing_key
cp /etc/concourse/worker_key.pub /etc/concourse/authorized_worker_keys
配置好上述密钥,便可以通过命令行启动一个web节点服务。
concourse web \
--add-local-user roens:123456 \
--main-team-local-user roens \
--session-signing-key /etc/concourse/session_signing_key \
--tsa-host-key /etc/concourse/tsa_host_key \
--tsa-authorized-keys /etc/concourse/authorized_worker_keys \
--external-url http://roens-ci.test.com \
--postgres-user concourse \
--postgres-password 123456
这样便启动了web节点的服务,可以通过8080端口访问。
启动worker可循文档同理。