วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วย Buildbot หลักหนึ่งตัวหรือมากกว่าและจำนวนพนักงาน Buildbot master หรือ Buildmaster มีคำสั่งกลางของระบบ มันมีหน้าที่ในการจัดการสภาพแวดล้อมการสร้างคนงานและตัดสินใจเกี่ยวกับการส่งงานให้กับคนงานทั้งหมด Buildmaster ตรวจพบการเปลี่ยนแปลงในที่เก็บรหัสและส่งคำสั่งหรืองานไปยังผู้ปฏิบัติงานเพื่อดำเนินการ คนงานดำเนินการงานและส่งคืนผลลัพธ์ไปที่ Buildmaster Buildmaster จะแจ้งผู้พัฒนาผ่านช่องทางที่รองรับหลายช่อง ในบทช่วยสอนนี้เราจะติดตั้ง Buildbot master and worker บน CentOS 7 นอกจากนี้เรายังจะกำหนดค่าการรับรองความถูกต้องและ Nginx เป็น reverse proxy ที่ปลอดภัย

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Vultr CentOS 7 ที่มี RAM อย่างน้อย 1GB
  • sudo ผู้ใช้
  • ชื่อโดเมนที่ลงทะเบียนชี้ไปที่เซิร์ฟเวอร์

สำหรับบทช่วยสอนนี้เราจะใช้192.168.1.1เป็นที่อยู่ IP สาธารณะและci.example.comเป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อโดเมนและที่อยู่ IP ตัวอย่างทั้งหมดด้วยชื่อจริง

ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง PostgreSQL

ติดตั้ง Python Dependencies

ติดตั้ง Pip ซึ่งเป็นผู้จัดการแพ็คเกจสำหรับ Python

sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip

ติดตั้ง PostgreSQL

Buildbot รองรับเซิร์ฟเวอร์ฐานข้อมูลหลายประเภทเช่น MySQL, PostgreSQL และ SQLite ในบทช่วยสอนนี้เราจะใช้ PostgreSQL เพื่อโฮสต์เซิร์ฟเวอร์ฐานข้อมูล Buildbot

PostgreSQL เป็นระบบฐานข้อมูลเชิงวัตถุที่รู้จักกันดีในเรื่องความเสถียรและความเร็ว ที่yumเก็บเริ่มต้นมี PostgreSQL เวอร์ชันเก่าดังนั้นให้เพิ่มที่เก็บ PostgreSQL

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

เริ่มต้นฐานข้อมูล

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

เริ่มต้นเซิร์ฟเวอร์ PostgreSQL และเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตเครื่อง

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

เปลี่ยนรหัสผ่านสำหรับผู้ใช้ PostgreSQL เริ่มต้น

sudo passwd postgres

เข้าสู่ระบบในฐานะผู้ใช้ PostgreSQL

sudo su - postgres

สร้างผู้ใช้ PostgreSQL ใหม่สำหรับ Buildbot

createuser bb_user

คุณสามารถใช้ชื่อผู้ใช้แทนได้bb_userหากต้องการ PostgreSQL จัดเตรียมpsqlเชลล์เพื่อรันเคียวรีบนฐานข้อมูล สลับไปที่เชลล์ PostgreSQL

psql

ตั้งรหัสผ่านสำหรับผู้ใช้ที่สร้างขึ้นใหม่

ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';

แทนที่DBPasswordด้วยรหัสผ่านที่ปลอดภัย

สร้างฐานข้อมูลใหม่สำหรับการติดตั้ง Buildbot

CREATE DATABASE buildbot OWNER bb_user;

ออกจากpsqlเปลือก

\q

เปลี่ยนเป็นsudoผู้ใช้

exit

แก้ไขpg_hba.confไฟล์เพื่อเปิดใช้งานการตรวจสอบตาม MD5

sudo nano /var/lib/pgsql/10/data/pg_hba.conf

ค้นหาบรรทัดต่อไปนี้และเปลี่ยนค่าpeerและidentในMETHODคอลัมน์เป็นtrustและmd5ตามลำดับ

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

เมื่ออัปเดตแล้วการกำหนดค่าจะมีลักษณะเหมือนข้อความต่อไปนี้

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

บันทึกไฟล์และออกจากโปรแกรมแก้ไข ติดตั้งอะแดปเตอร์ฐานข้อมูล PostgreSQL สำหรับ Python

sudo pip install psycopg2

รีสตาร์ท PostgreSQL เพื่อให้การเปลี่ยนแปลงมีผล

sudo systemctl restart postgresql-10

ติดตั้ง Buildbot

ติดตั้ง Buildbot โดยใช้ Pip

sudo pip install 'buildbot[bundle]' pyopenssl service_identity

คำสั่งดังกล่าวจะติดตั้งพร้อมกับ Buildbot buildbot-www, และอีกหลายเว็บปลั๊กอินเช่นbuildbot-workerbuildbot-waterfall-view

เพื่อให้แน่ใจว่า Buildbot ได้รับการติดตั้งเรียบร้อยแล้วคุณสามารถตรวจสอบได้โดยตรวจสอบเวอร์ชั่นของ Buildbot

buildbot --version

ผลลัพธ์ควรมีลักษณะข้อความต่อไปนี้

[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0

8010การปรับเปลี่ยนกฎไฟร์วอลล์ของคุณเพื่อช่วยให้พอร์ต Buildbot ใช้พอร์ตนี้เพื่อรับฟังคำขอของเว็บ

sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload

กำหนดค่า Buildbot Master

สร้างผู้ใช้ที่ไม่มีสิทธิ์ใหม่เพื่อเรียกใช้กระบวนการหลักของ Buildbot และกระบวนการของผู้ปฏิบัติงาน ไม่แนะนำให้เรียกใช้บริการหลักของ Buildbot ในฐานะrootผู้ใช้

sudo adduser buildbot
sudo passwd buildbot

เข้าสู่ระบบในฐานะbuildbotผู้ใช้ที่สร้างขึ้นใหม่

sudo su - buildbot

ตั้งค่าต้นแบบ Buildbot ใน/home/buildbot/masterไดเรกทอรี ไดเรกทอรีนี้จะมีการกำหนดค่าสถานะและไฟล์บันทึกของแต่ละบิลด์

buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master

ตรวจสอบให้แน่ใจว่าได้เปลี่ยนข้อมูลประจำตัวของผู้ใช้ฐานข้อมูลในคำสั่งด้านบน

หมายเหตุ: หากคุณต้องการใช้ฐานข้อมูล SQLite แทน PostgreSQL เพียงแค่ไม่ใช้--db 'postgresql://bb_user:DBpassword@localhost/buildbot'ตัวเลือก ฐานข้อมูล SQLite จะถูกสร้างในไดเรกทอรีเดียวกัน

คำสั่งดังกล่าวจะสร้าง~/masterไดเรกทอรีเพื่อเก็บไฟล์ Buildmaster มันจะเขียนข้อมูลลงในฐานข้อมูล PostgreSQL คุณจะได้รับผลลัพธ์ต่อไปนี้

[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master

คัดลอกไฟล์การกำหนดค่าตัวอย่างไปยังไฟล์การกำหนดค่าสด

cp ~/master/master.cfg.sample ~/master/master.cfg

แก้ไขไฟล์กำหนดค่า

nano ~/master/master.cfg

ค้นหาบรรทัดต่อไปนี้

c['workers'] = [worker.Worker("example-worker", "pass")]
...

c['builders'].append(
    util.BuilderConfig(name="runtests",
      workernames=["example-worker"],
      factory=factory))
...

c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...

c['buildbotURL'] = "http://localhost:8010/"
...

c['db'] = {
    'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}

การกำหนดค่าด้านบนมีรายการสำหรับผู้ปฏิบัติงานตัวอย่าง localhostเราจะปรับเปลี่ยนรายการตัวอย่างสำหรับผู้ปฏิบัติงานที่เราจะทำงานบน เปลี่ยนเป็นexample-workerชื่อที่เหมาะสมสำหรับผู้localhostปฏิบัติงานและเปลี่ยนเป็นpassรหัสผ่านอื่น จดบันทึกชื่อผู้ปฏิบัติงานและรหัสผ่านตามที่เราต้องการในภายหลังในบทช่วยสอน เปลี่ยนชื่อของผู้ปฏิบัติงานในรายการผู้สร้าง เปลี่ยนชื่อของแอปพลิเคชันและ URL โครงการตามความต้องการของคุณ

เปลี่ยน URL Buildbot จากlocalhostเป็นชื่อโดเมนจริงหรือที่อยู่ IP สาธารณะของคุณ นอกจากนี้ตรวจสอบว่าข้อมูลฐานข้อมูลในไฟล์กำหนดค่าตรงกับข้อมูลรับรองฐานข้อมูลจริงของคุณ

c['buildbotNetUsageData'] = Noneในตอนท้ายของไฟล์เพิ่ม พารามิเตอร์นี้จะปิดใช้งานการส่งข้อมูลรุ่นซอฟต์แวร์และรายละเอียดการใช้งานปลั๊กอินไปยังนักพัฒนา Fullอย่างไรก็ตามเพื่อให้สามารถส่งข้อมูลการใช้งานที่เปลี่ยนตัวเลือกในการ

การกำหนดค่าควรมีลักษณะข้อความต่อไปนี้

c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...    

c['builders'].append(
    util.BuilderConfig(name="runtests",
      workernames=["localhost-worker"],
      factory=factory))
...

c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...

c['buildbotURL'] = "http://192.168.1.1:8010/"
...

c['db'] = {
    'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...

c['buildbotNetUsageData'] = None

บันทึกไฟล์และออกจากโปรแกรมแก้ไข ตรวจสอบไฟล์ข้อผิดพลาด

buildbot checkconfig ~/master

หากไฟล์การกำหนดค่าไม่มีข้อผิดพลาดคุณจะเห็นผลลัพธ์ต่อไปนี้

[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!

ตอนนี้ทุกอย่างได้รับการกำหนดค่าอย่างถูกต้องคุณสามารถเริ่มต้นแบบ Buildbot

buildbot start ~/master

คุณจะเห็นผลลัพธ์ต่อไปนี้

[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.

ตอนนี้ที่โท Buildbot http://192.168.1.1:8010ได้เริ่มต้นอย่างถูกต้องส่วนติดต่อผู้ใช้เว็บสามารถเข้าถึงได้ คุณควรเห็นอินเตอร์เฟส Buildbot ต่อไปนี้

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

กำหนดค่า Buildbot Worker

เนื่องจากเราได้แก้ไขการกำหนดค่าของผู้ปฏิบัติงานใน~/master/master.cfgแล้วเราจึงสามารถสร้างคนงานใหม่ได้

buildbot-worker create-worker ~/worker localhost localhost-worker Password123

ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อผู้ปฏิบัติงานและรหัสผ่านเดียวกันกับที่ระบุไว้ใน~/master/master.cfgไฟล์ หากมีความไม่ตรงกันในชื่อผู้ปฏิบัติงานหรือรหัสผ่านผู้ปฏิบัติงานจะไม่สามารถเชื่อมต่อกับต้นแบบ Buildbot คุณจะเห็นผลลัพธ์ต่อไปนี้เมื่อการประมวลผลสำเร็จ

[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker

ข้อมูลเกี่ยวกับคนงานจะถูกเก็บไว้ใน/infoไดเรกทอรี แก้ไขข้อมูลการดูแลเกี่ยวกับนักพัฒนา

nano ~/worker/info/admin

แทนที่ชื่อตัวอย่างด้วยชื่อจริงและอีเมลของคุณ

Your Name <[email protected]>

ตอนนี้เปิดไฟล์ที่มีข้อมูลเกี่ยวกับโฮสต์

nano ~/worker/info/host

แทนที่คำสั่งตัวอย่างด้วยข้อมูลจริงเกี่ยวกับระบบโฮสต์

Localhost, CentOS 7

ผู้ดูแลระบบผู้ปฏิบัติงานและข้อมูลโฮสต์จะใช้เพื่อบอกผู้ใช้เกี่ยวกับระบบเท่านั้น คุณยังสามารถเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับระบบเช่นรุ่น Buildbot และรุ่น Twisted

เริ่มคนงาน

buildbot-worker start ~/worker

ผลลัพธ์จะมีลักษณะข้อความต่อไปนี้

[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.

หากต้องการตรวจสอบว่ามีการลงทะเบียนผู้ปฏิบัติงานหรือไม่ให้ไปที่เว็บอินเตอร์เฟสของ Buildbot และไปที่นำทางBuilds >> Workersจากการนำทางด้านซ้าย คุณควรเห็นว่าผู้ปฏิบัติงานพร้อมแล้วที่จะสร้าง

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

การเรียกใช้การสร้างตัวอย่างเพื่อตรวจสอบว่าผู้ปฏิบัติงาน Buildbot Builds >> Buildersจะทำงานเสร็จเรียบร้อยแล้วให้ไปที่ คลิกที่runtestsชื่อผู้สร้างเพื่อเปิดส่วนต่อประสานตัวสร้างและคลิกที่Forceปุ่มเพื่อบังคับให้สร้าง ระบุชื่อของคุณและคลิกที่Start Buildปุ่มเพื่อเริ่มสร้าง เนื่องจากเป็นการทดสอบสร้างตัวอย่างเพื่อตรวจสอบสภาพแวดล้อมของ Buildbot มันจะเสร็จสิ้นในไม่กี่วินาที คุณจะได้รับข้อความแสดงความสำเร็จและผลลัพธ์การสร้าง

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

การตั้งค่าบริการ Systemd

แม้ว่าต้นแบบและผู้สร้าง Buildbot สามารถเริ่มต้นได้ง่ายโดยใช้คำสั่งด้านบนแนะนำให้ใช้หน่วย Systemd เพื่อเรียกใช้และจัดการบริการ Buildbot สิ่งนี้จะช่วยให้มั่นใจได้ว่าพวกเขาจะเริ่มต้นโดยอัตโนมัติเมื่อระบบรีสตาร์ทและความล้มเหลว

หมายเหตุ: การ สลับไปที่sudoผู้ใช้อีกครั้งโดยการทำงานอย่างใดอย่างหนึ่งหรือexit su <username>จากนี้ไปคำสั่งทั้งหมดจะต้องดำเนินการโดยsudoผู้ใช้

หยุดทำงาน Buildbot คนทำงานและบริการหลัก

sudo su buildbot -c "buildbot stop /home/buildbot/master" 
sudo su buildbot -c "buildbot-worker stop ~/worker"

สร้างไฟล์หน่วย Systemd ใหม่สำหรับต้นแบบ Buildbot

sudo nano /etc/systemd/system/buildbot.service

เติมไฟล์

[Unit]
Description=BuildBot master service 
After=network.target

[Service]
Type=forking
User=buildbot 
Group=buildbot 
WorkingDirectory=/home/buildbot/master 
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart

[Install]
WantedBy=multi-user.target

เริ่มต้นแบบ Buildbot และเปิดใช้งานให้เริ่มต้นโดยอัตโนมัติในเวลาบูต

sudo systemctl start buildbot
sudo systemctl enable buildbot

สร้างไฟล์หน่วย Systemd ใหม่สำหรับผู้ปฏิบัติงาน Buildbot

sudo nano /etc/systemd/system/buildbot-worker.service

เติมไฟล์

[Unit]
Description=BuildBot worker service
After=network.target

[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart

[Install]
WantedBy=multi-user.target

เริ่มงาน Buildbot และเปิดใช้งานโดยอัตโนมัติเมื่อเริ่มต้นระบบโดยอัตโนมัติ

sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker

คุณสามารถตรวจสอบสถานะของบริการ

sudo systemctl status buildbot buildbot-worker

หากบริการทำงานได้อย่างราบรื่นคุณจะเห็นว่าในผลลัพธ์

[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.

● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.

เปิดใช้งานการรับรองความถูกต้อง

โดยค่าเริ่มต้นการตรวจสอบไม่ได้เปิดใช้งานในเว็บอินเตอร์เฟส Buildbot สำหรับเว็บไซต์ที่หันเข้าหาอินเทอร์เน็ตขอแนะนำอย่างยิ่งให้ตั้งค่าการตรวจสอบความถูกต้องเพื่อให้ผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่มีความสามารถในการทำงานด้านการดูแลระบบ ในการตั้งค่าการตรวจสอบความถูกต้องให้เปิดไฟล์กำหนดค่าหลักของ Buildbot อีกครั้ง

sudo su buildbot -c "nano /home/buildbot/master/master.cfg"

เพิ่มบรรทัดต่อไปนี้ในตอนท้ายของไฟล์

c['www']['authz'] = util.Authz(
       allowRules = [
           util.AnyEndpointMatcher(role="admins")
       ],
       roleMatchers = [
           util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
       ]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})

แทนที่ทั้งสองเหตุการณ์admin_userด้วยชื่อผู้ใช้จริงที่คุณต้องการใช้และAdminPasswordด้วยรหัสผ่านที่คาดเดายาก

ตรวจสอบข้อผิดพลาดในไฟล์กำหนดค่า

sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"

เริ่มบริการหลักของ Buildbot เพื่อให้การเปลี่ยนแปลงมีผล

sudo systemctl restart buildbot

เรียกดูเว็บอินเตอร์เฟสอีกครั้งเพื่อดูว่าผู้ใช้ที่ไม่ระบุชื่อสามารถดูรายละเอียดพื้นฐานเกี่ยวกับเซิร์ฟเวอร์การสร้างได้เท่านั้น ตอนนี้เข้าสู่ระบบโดยใช้ข้อมูลประจำตัวที่ตั้งค่าในmaster.cfgไฟล์และคุณจะเห็นว่าฟังก์ชั่นการบริหารอื่น ๆ ทั้งหมดจะใช้ไ��้เฉพาะกับผู้ใช้ที่เข้าสู่ระบบผู้ดูแลระบบ

สร้าง Buildbot ด้วย Let's Encrypt SSL

โดยค่าเริ่มต้น Buildbot จะฟังพอร์ต8010ที่ไม่มีการเชื่อมต่อที่ปลอดภัย HTTPSขอแนะนำให้ใช้ส่วนต่อประสานกับเว็บเพื่อให้แน่ใจว่าข้อมูลปลอดภัยในระหว่างการขนส่งจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ ในบทนี้เราจะทำการติดตั้งและรักษาความปลอดภัย Nginx ด้วย Let's Encrypt ใบรับรอง SSL ฟรี เว็บเซิร์ฟเวอร์ Nginx จะทำงานเป็น reverse proxy เพื่อส่งต่อคำร้องขอขาเข้าไปยังจุดปลาย HTTP ของ Buildbot

ติดตั้ง Nginx

sudo yum -y install nginx

เริ่ม Nginx และเปิดใช้งานให้เริ่มโดยอัตโนมัติในเวลาบูต

sudo systemctl start nginx
sudo systemctl enable nginx

ติดตั้ง Certbot ซึ่งเป็นแอปพลิเคชันไคลเอนต์สำหรับ Let's Encrypt CA

sudo yum -y install certbot

ก่อนที่คุณจะสามารถขอใบรับรองคุณจะต้องอนุญาตให้ใช้พอร์ต80และ443หรือมาตรฐานHTTPและHTTPSบริการผ่านไฟร์วอลล์ นอกจากนี้ให้ลบพอร์ต8010ซึ่งฟังการเชื่อมต่อที่ไม่ปลอดภัย

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8010/tcp --permanent
sudo firewall-cmd --reload

หมายเหตุ: ในการรับใบรับรองจาก Let's Encrypt CA โดเมนที่จะสร้างใบรับรองนั้นจะต้องชี้ไปที่เซิร์ฟเวอร์ หากไม่มีให้ทำการเปลี่ยนแปลงที่จำเป็นกับระเบียน DNS ของโดเมนและรอให้ DNS เผยแพร่ก่อนทำการขอใบรับรองอีกครั้ง Certbot ตรวจสอบอำนาจโดเมนก่อนที่จะให้ใบรับรอง

สร้างใบรับรอง SSL

sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com

ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน/etc/letsencrypt/live/ci.example.com/ไดเรกทอรี ใบรับรอง SSL จะถูกเก็บไว้เป็นและคีย์ส่วนตัวจะถูกเก็บไว้เป็นfullchain.pemprivkey.pem

ลองเข้ารหัสใบรับรองหมดอายุใน 90 วันดังนั้นขอแนะนำให้ตั้งค่าการต่ออายุใบรับรองโดยอัตโนมัติโดยใช้งาน Cron

เปิดไฟล์งาน cron สำหรับrootผู้ใช้

sudo crontab -e

เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

30 5 * * * /usr/bin/certbot renew --quiet

งาน cron ข้างต้นจะทำงานทุกวันเวลา 5.30 น. หากใบรับรองหมดอายุเนื่องจากหมดอายุใบรับรองจะต่ออายุโดยอัตโนมัติ

ตอนนี้เปลี่ยนไฟล์กำหนดค่าเริ่มต้นของ Nginx เป็นdefault_serverบรรทัด

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

สร้างไฟล์การกำหนดค่าใหม่สำหรับเว็บอินเตอร์เฟส Buildbot

sudo nano /etc/nginx/conf.d/buildbot.conf

เติมไฟล์

upstream buildbot {
server 127.0.0.1:8010;
}

server {
    listen 80 default_server;
    server_name ci.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    server_name ci.example.com;

    root html;
    index index.html index.htm;

    ssl on;
    ssl_certificate         /etc/letsencrypt/live/ci.example.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/ci.example.com/privkey.pem;

    ssl_session_cache      shared:SSL:10m;
    ssl_session_timeout  1440m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

    access_log  /var/log/nginx/buildbot.access.log;

    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-Server  $host;
    proxy_set_header X-Forwarded-Host  $host;

    location / {
        proxy_pass http://buildbot;
    }
    location /sse/ {
        proxy_buffering off;
        proxy_pass http://buildbot/sse/;
    }
    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://buildbot/ws;
        proxy_read_timeout 6000s;
    }
}

ตรวจสอบข้อผิดพลาดในไฟล์กำหนดค่าใหม่

sudo nginx -t

หากคุณเห็นผลลัพธ์ต่อไปนี้การกำหนดค่าจะไม่มีข้อผิดพลาด

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

หากคุณได้รับข้อผิดพลาดบางประเภทตรวจสอบให้แน่ใจว่าได้ตรวจสอบเส้นทางไปยังใบรับรอง SSL อีกครั้ง รีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx เพื่อใช้การเปลี่ยนแปลงการกำหนดค่า

sudo systemctl restart nginx

เปิดไฟล์คอนฟิกูเรชัน Buildmaster

sudo su buildbot -c "nano /home/buildbot/master/master.cfg"

ค้นหาบรรทัดต่อไปนี้

c['buildbotURL'] = "http://192.168.1.1:8010/"

เปลี่ยน URL ตามชื่อโดเมนที่คุณใช้

c['buildbotURL'] = "https://ci.example.com/"

เริ่มบริการหลักของ Buildbot

sudo systemctl restart buildbot

ตอนนี้คุณสามารถเข้าถึงแดชบอร์ด Buildbot https://ci.example.comที่ คุณจะเห็นว่าการเชื่อมต่อกับ Buildbot นั้นปลอดภัยด้วย SSL

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

เข้าสู่ระบบโดยใช้ข้อมูลประจำตัวของผู้ดูแลระบบและเพิ่มขั้นตอนแรกของคุณเพื่อเริ่มสร้างแอปพลิเคชันของคุณ



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true