การติดตั้ง Pagekit CMS บน CentOS 7
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วย Buildbot หลักหนึ่งตัวหรือมากกว่าและจำนวนพนักงาน Buildbot master หรือ Buildmaster มีคำสั่งกลางของระบบ มันมีหน้าที่ในการจัดการสภาพแวดล้อมการสร้างคนงานและตัดสินใจเกี่ยวกับการส่งงานให้กับคนงานทั้งหมด Buildmaster ตรวจพบการเปลี่ยนแปลงในที่เก็บรหัสและส่งคำสั่งหรืองานไปยังผู้ปฏิบัติงานเพื่อดำเนินการ คนงานดำเนินการงานและส่งคืนผลลัพธ์ไปที่ Buildmaster Buildmaster จะแจ้งผู้พัฒนาผ่านช่องทางที่รองรับหลายช่อง ในบทช่วยสอนนี้เราจะติดตั้ง Buildbot master and worker บน CentOS 7 นอกจากนี้เรายังจะกำหนดค่าการรับรองความถูกต้องและ Nginx เป็น reverse proxy ที่ปลอดภัย
สำหรับบทช่วยสอนนี้เราจะใช้192.168.1.1
เป็นที่อยู่ IP สาธารณะและci.example.com
เป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อโดเมนและที่อยู่ IP ตัวอย่างทั้งหมดด้วยชื่อจริง
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง PostgreSQL
ติดตั้ง Pip ซึ่งเป็นผู้จัดการแพ็คเกจสำหรับ Python
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
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 โดยใช้ Pip
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
คำสั่งดังกล่าวจะติดตั้งพร้อมกับ Buildbot buildbot-www
, และอีกหลายเว็บปลั๊กอินเช่นbuildbot-worker
buildbot-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 และกระบวนการของผู้ปฏิบัติงาน ไม่แนะนำให้เรียกใช้บริการหลักของ 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 ต่อไปนี้
เนื่องจากเราได้แก้ไขการกำหนดค่าของผู้ปฏิบัติงานใน~/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 Builds >> Builders
จะทำงานเสร็จเรียบร้อยแล้วให้ไปที่ คลิกที่runtests
ชื่อผู้สร้างเพื่อเปิดส่วนต่อประสานตัวสร้างและคลิกที่Force
ปุ่มเพื่อบังคับให้สร้าง ระบุชื่อของคุณและคลิกที่Start Build
ปุ่มเพื่อเริ่มสร้าง เนื่องจากเป็นการทดสอบสร้างตัวอย่างเพื่อตรวจสอบสภาพแวดล้อมของ Buildbot มันจะเสร็จสิ้นในไม่กี่วินาที คุณจะได้รับข้อความแสดงความสำเร็จและผลลัพธ์การสร้าง
แม้ว่าต้นแบบและผู้สร้าง 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 จะฟังพอร์ต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.pem
privkey.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
เข้าสู่ระบบโดยใช้ข้อมูลประจำตัวของผู้ดูแลระบบและเพิ่มขั้นตอนแรกของคุณเพื่อเริ่มสร้างแอปพลิเคชันของคุณ
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
TestLink เป็นระบบดำเนินการจัดการทดสอบบนเว็บโอเพ่นซอร์ส ช่วยให้ทีมงานประกันคุณภาพสามารถสร้างและจัดการกรณีทดสอบได้เช่นกัน
FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ
CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม
ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น
ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย
ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์
Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o
Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์
ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:
ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง
แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ
ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก
ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade
ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม
บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou
GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ
ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง
PrestaShop เป็นโซลูชันอีคอมเมิร์ซแบบโอเพ่นซอร์สที่ได้รับความนิยม คุณสามารถใช้มันเพื่อสร้างร้านค้าออนไลน์ของคุณเองได้ฟรี ในบทช่วยสอนนี้ฉันจะแสดงให้คุณเห็นว่า
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true
ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร
ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1
AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน