कैसे स्थापित करें और CentOS 7 पर Buildbot कॉन्फ़िगर करें

बिल्डबॉट एक खुला स्रोत है, पायथन आधारित, सॉफ्टवेयर बिल्डिंग, परीक्षण और तैनाती को स्वचालित करने के लिए निरंतर एकीकरण उपकरण। बिल्डबॉट में एक या अधिक बिल्डबोट मास्टर और कई श्रमिक होते हैं। बिल्डबॉट मास्टर या बिल्डमास्टर के पास सिस्टम की केंद्रीय कमान है। यह बिल्ड पर्यावरण, श्रमिकों के प्रबंधन के लिए जिम्मेदार है और श्रमिकों को रोजगार भेजने के बारे में सभी निर्णय लेता है। बिल्डमास्टर कोड रिपॉजिटरी में बदलाव का पता लगाता है और कर्मचारियों को निष्पादित करने के लिए कमांड या जॉब भेजता है। श्रमिक नौकरियों को निष्पादित करते हैं और परिणाम को बिल्डमास्टर को वापस करते हैं। बिल्डमास्टर तब कई समर्थित चैनलों के माध्यम से डेवलपर्स को सूचित करता है। इस ट्यूटोरियल में, हम बिल्डबोट मास्टर और वर्कर को CentOS 7 में स्थापित करेंगे। हम एक सुरक्षित रिवर्स प्रॉक्सी के रूप में प्रमाणीकरण और नग्नेक्स को भी कॉन्फ़िगर करेंगे।

आवश्यक शर्तें

  • कम से कम 1GB रैम के साथ Vultr CentOS 7 सर्वर का उदाहरण।
  • एक sudo यूजर
  • एक पंजीकृत डोमेन नाम सर्वर की ओर इंगित करता है।

इस ट्यूटोरियल के लिए, हम 192.168.1.1सार्वजनिक आईपी पते के ci.example.comरूप में और डोमेन नाम वल्चर उदाहरण की ओर इशारा करेंगे। कृपया वास्तविक डोमेन के साथ उदाहरण डोमेन नाम और आईपी पते की सभी घटनाओं को बदलना सुनिश्चित करें।

सेंटोस 7 को अपडेट करने के लिए गाइड का उपयोग करके अपनी आधार प्रणाली को अपडेट करें । एक बार आपका सिस्टम अपडेट हो जाने के बाद, PostgreSQL को स्थापित करने के लिए आगे बढ़ें।

पायथन निर्भरताएँ स्थापित करें

पिप स्थापित करें, जो पायथन के लिए एक पैकेज प्रबंधक है।

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

PostgreSQL स्थापित करें

बिल्डबोट कई प्रकार के डेटाबेस सर्वर जैसे MySQL, PostgreSQL और SQLite का समर्थन करता है। इस ट्यूटोरियल में, हम बिल्डबोट डेटाबेस सर्वर को होस्ट करने के लिए PostgreSQL का उपयोग करेंगे।

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

Buildbot के लिए एक नया PostgreSQL उपयोगकर्ता बनाएँ।

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.confMD5 आधारित प्रमाणीकरण सक्षम करने के लिए फ़ाइल को संपादित करें ।

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 डेटाबेस एडाप्टर स्थापित करें।

sudo pip install psycopg2

PostgreSQL को पुनरारंभ करें ताकि परिवर्तन प्रभावी हो सकें।

sudo systemctl restart postgresql-10

बिल्डबॉट स्थापित करें

Pip का उपयोग करके Buildbot स्थापित करें।

sudo pip install 'buildbot[bundle]' pyopenssl service_identity

उपरोक्त आदेश के साथ-साथ Buildbot स्थापित हो जाएगा buildbot-www, buildbot-workerऔर कई वेब के रूप में इस तरह के प्लगइन्स buildbot-waterfall-view

यह सुनिश्चित करने के लिए कि बिल्डबॉट सफलतापूर्वक स्थापित किया गया है, आप बिल्डबॉट के संस्करण की जांच करके सत्यापित कर सकते हैं।

buildbot --version

आउटपुट निम्न पाठ से मिलता जुलता होना चाहिए।

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

पोर्ट की अनुमति देने के लिए अपने फ़ायरवॉल नियमों को संशोधित करें 8010। वेब अनुरोधों को सुनने के लिए बिल्डबॉट इस पोर्ट का उपयोग करता है।

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

बिल्डबोट मास्टर कॉन्फ़िगर करें

बिल्डबोट मास्टर और वर्कर प्रक्रियाओं को चलाने के लिए एक नया अनपेक्षित उपयोगकर्ता बनाएं। rootउपयोगकर्ता के रूप में बिल्डबॉट मास्टर सेवाओं को चलाने की अनुशंसा नहीं की जाती है ।

sudo adduser buildbot
sudo passwd buildbot

नए बनाए गए buildbotउपयोगकर्ता के रूप में लॉग इन करें।

sudo su - buildbot

/home/buildbot/masterनिर्देशिका में Buildbot मास्टर सेट करें । इस निर्देशिका में प्रत्येक बिल्ड की कॉन्फ़िगरेशन, स्थिति और लॉग फ़ाइलें होंगी।

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

उपरोक्त आदेश में डेटाबेस उपयोगकर्ता के क्रेडेंशियल्स को बदलना सुनिश्चित करें।

नोट: यदि आप PostgreSQL के बजाय SQLite डेटाबेस का उपयोग करना चाहते हैं, तो बस --db 'postgresql://bb_user:DBpassword@localhost/buildbot'विकल्प को छोड़ दें । SQLite डेटाबेस उसी निर्देशिका में बनाया जाएगा।

उपरोक्त आदेश ~/masterबिल्डमास्टर फ़ाइलों को संग्रहीत करने के लिए निर्देशिका बनाएगा । यह डेटा को 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 का नाम बदलें।

Buildbot URL 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 start ~/master

आप निम्न आउटपुट देखेंगे।

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

अब जब बिल्डबॉट मास्टर सही ढंग से शुरू हो गया है, तो वेब उपयोगकर्ता इंटरफ़ेस पहुंच योग्य है http://192.168.1.1:8010। आपको निम्न बिल्डबॉट इंटरफ़ेस देखना चाहिए।

कैसे स्थापित करें और CentOS 7 पर Buildbot कॉन्फ़िगर करें

बिल्डबोट वर्कर कॉन्फ़िगर करें

चूंकि हमने पहले ही वर्कर कॉन्फ़िगरेशन को संशोधित कर दिया है ~/master/master.cfg, इसलिए हम एक नया वर्कर बनाने के लिए आगे बढ़ सकते हैं।

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

सुनिश्चित करें कि आप ~/master/master.cfgफ़ाइल में उल्लिखित समान कार्यकर्ता नाम और पासवर्ड का उपयोग करते हैं । यदि कार्यकर्ता के नाम या पासवर्ड में कोई बेमेल है, तो कार्यकर्ता बिल्डबोट मास्टर से कनेक्ट नहीं कर पाएगा। आप सफल निष्पादन पर निम्नलिखित आउटपुट देखेंगे।

[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-worker start ~/worker

आउटपुट निम्न पाठ की तरह दिखेगा।

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

यह देखने के लिए कि क्या कार्यकर्ता पंजीकृत है, बिल्डबॉट के वेब इंटरफेस पर जाएं और Builds >> Workersबाएं नेविगेशन से नेविगेट करें । आपको यह देखना चाहिए कि कार्यकर्ता ऊपर है और निर्माण के लिए तैयार है।

कैसे स्थापित करें और CentOS 7 पर Buildbot कॉन्फ़िगर करें

सैंपल बिल्ड को चलाने के लिए, यह जांचने के लिए कि बिल्डबोट कार्यकर्ता सफलतापूर्वक चल रहा है, नेविगेट करने के लिए Builds >> Builders। पर क्लिक करें runtestsबिल्डर इंटरफ़ेस खोलने के लिए और पर क्लिक करने के बिल्डर नाम Forceनिर्माण के लिए मजबूर करने के लिए बटन। अपना नाम प्रदान करें और Start Buildबिल्ड शुरू करने के लिए बटन पर क्लिक करें । चूंकि यह बिल्डबॉट पर्यावरण की जांच करने के लिए एक नमूना निर्माण परीक्षण है, यह कुछ सेकंड में समाप्त हो जाएगा। आपको एक सफलता संदेश और निर्माण परिणाम मिलेगा।

कैसे स्थापित करें और CentOS 7 पर Buildbot कॉन्फ़िगर करें

Systemd सेवा की स्थापना

यद्यपि बिल्डबोट मास्टर और कार्यकर्ता को आसानी से ऊपर दिए गए आदेशों का उपयोग करके शुरू किया जा सकता है, लेकिन बिल्डबॉट सेवाओं को चलाने और प्रबंधित करने के लिए सिस्टमड इकाइयों का उपयोग करने की सिफारिश की जाती है। यह सुनिश्चित करेगा कि वे सिस्टम पुनरारंभ और विफलताओं पर स्वचालित रूप से शुरू हो गए हैं।

नोट: या तो चलाकर उपयोगकर्ता को फिर से स्विच sudoकरें । अब से सभी कमांड को उपयोगकर्ता द्वारा निष्पादित करने की आवश्यकता है ।exitsu <username>sudo

रनिंग बिल्डबोट कार्यकर्ता और मास्टर सेवा बंद करें।

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

Buildbot मास्टर के लिए एक नया Systemd यूनिट फ़ाइल बनाएँ।

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

बिल्डबॉट मास्टर शुरू करें और इसे बूट समय पर स्वचालित रूप से शुरू करने के लिए सक्षम करें।

sudo systemctl start buildbot
sudo systemctl enable buildbot

Buildbot कार्यकर्ता के लिए एक नया Systemd यूनिट फ़ाइल बनाएँ।

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.

प्रमाणीकरण सक्षम करना

डिफ़ॉल्ट रूप से, बिल्डबॉट वेब इंटरफ़ेस में प्रमाणीकरण सक्षम नहीं है। इंटरनेट का सामना करने वाली साइटों के लिए, प्रमाणीकरण की स्थापना के लिए दृढ़ता से अनुशंसा की जाती है ताकि केवल अधिकृत उपयोगकर्ता ही प्रशासनिक कार्यों को करने की क्षमता रख सकें। प्रमाणीकरण सेट करने के लिए, बिल्डबोट मास्टर कॉन्फ़िगरेशन फ़ाइल को फिर से खोलें।

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"

बिल्डबॉट मास्टर सेवा को पुनरारंभ करें ताकि परिवर्तन प्रभावी हो सकें।

sudo systemctl restart buildbot

वेब इंटरफ़ेस फिर से ब्राउज़ करें यह देखने के लिए कि अनाम उपयोगकर्ता केवल बिल्ड सर्वर के बारे में मूल विवरण देख सकते हैं। अब, master.cfgफ़ाइल में सेट किए गए क्रेडेंशियल्स का उपयोग करके लॉग इन करें और आप देखेंगे कि अन्य सभी प्रशासनिक कार्य केवल लॉग इन एडमिन उपयोगकर्ता के लिए उपलब्ध हैं।

SSL के साथ Buildbot को सुरक्षित करें

डिफ़ॉल्ट रूप से, बिल्डबोट 8010असुरक्षित कनेक्शन पर पोर्ट को सुनता है । वेब इंटरफ़ेस को सुरक्षित रखने के HTTPSलिए यह सुनिश्चित करने की अनुशंसा की जाती है कि ब्राउज़र से सर्वर तक परिवहन के दौरान डेटा सुरक्षित हो। ट्यूटोरियल के इस भाग में, हम निन्ज को नि: शुल्क SSL प्रमाणपत्रों को एन्क्रिप्ट करने के साथ स्थापित और सुरक्षित करेंगे। बिल्डबॉट के HTTP एंडपॉइंट के लिए आने वाले अनुरोधों को आगे बढ़ाने के लिए Nginx वेब सर्वर एक रिवर्स प्रॉक्सी के रूप में काम करेगा।

Nginx स्थापित करें।

sudo yum -y install nginx

Nginx प्रारंभ करें और इसे बूट समय पर स्वचालित रूप से प्रारंभ करने के लिए सक्षम करें।

sudo systemctl start nginx
sudo systemctl enable nginx

सर्टिफिकेट स्थापित करें, जो कि चलो एनक्रिप्ट एनए के लिए क्लाइंट एप्लिकेशन है।

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

नोट: लेट्स एनक्रिप्ट एन से सर्टिफिकेट प्राप्त करने के लिए, जिस डोमेन के लिए सर्टिफिकेट जेनरेट किया जाना है, उसे सर्वर की ओर इंगित किया जाना चाहिए। यदि नहीं, तो डोमेन के DNS रिकॉर्ड्स में आवश्यक परिवर्तन करें और फिर से प्रमाणपत्र अनुरोध करने से पहले DNS के प्रचार के लिए प्रतीक्षा करें। सर्टिफिकेट सर्टिफिकेट प्रदान करने से पहले डोमेन प्राधिकरण की जांच करता है।

एसएसएल प्रमाणपत्र उत्पन्न करें।

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

जेनरेट किए गए प्रमाणपत्रों को /etc/letsencrypt/live/ci.example.com/निर्देशिका में संग्रहीत किए जाने की संभावना है । एसएसएल प्रमाण पत्र के रूप में संग्रहीत किया जाएगा fullchain.pemऔर निजी कुंजी के रूप में संग्रहीत किया जाएगा privkey.pem

आइए 90 दिनों में प्रमाणपत्रों को एन्क्रिप्ट करें, इसलिए क्रोन नौकरियों का उपयोग करके प्रमाणपत्रों के स्वत: नवीनीकरण की सिफारिश की जाती है।

rootउपयोगकर्ता के लिए क्रोन जॉब फ़ाइल खोलें ।

sudo crontab -e

फ़ाइल के अंत में निम्न पंक्ति जोड़ें।

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

उपरोक्त क्रोन नौकरी हर दिन सुबह 5:30 बजे चलेगी। यदि प्रमाण पत्र समाप्ति के लिए है, तो यह स्वचालित रूप से उन्हें नवीनीकृत करेगा।

अब, default_serverलाइन को बाहर निकालने के लिए Nginx डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को बदलें ।

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

बिल्डबॉट वेब इंटरफ़ेस के लिए एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं।

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

बिल्डमास्टर कॉन्फ़िगरेशन फ़ाइल खोलें।

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/"

बिल्डबोट मास्टर सेवा को पुनरारंभ करें।

sudo systemctl restart buildbot

अब आप Buildbot डैशबोर्ड पर पहुँच सकते हैं https://ci.example.com। आप देखेंगे कि बिल्डबॉट के कनेक्शन अब एसएसएल के साथ सुरक्षित हो गए हैं।

कैसे स्थापित करें और CentOS 7 पर Buildbot कॉन्फ़िगर करें

व्यवस्थापक क्रेडेंशियल्स का उपयोग करके लॉग इन करें और अपना एप्लिकेशन शुरू करने के लिए अपनी पहली पाइपलाइन जोड़ें।



Leave a Comment

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ

CentOS 7 पर RockMongo स्थापित करें

CentOS 7 पर RockMongo स्थापित करें

RockMongo एक वेब-आधारित MongoDB प्रबंधन उपकरण है जो MySQL प्रबंधन उपकरण के समान है: phpMyAdmin। यह ट्यूटोरियल इंस्टॉलिन की प्रक्रिया को कवर करेगा

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? आवश्यकताएँ एक Vultr CentOS 7 सर्वर उदाहरण। एक sudo यूजर। चरण 1: सिस्टम को पहले अपडेट करें, अपने सिस्टम सर्वर को वें में अपडेट करें

CentOS 7 पर नेटडाटा स्थापित करना

CentOS 7 पर नेटडाटा स्थापित करना

एक अलग प्रणाली का उपयोग? नेटडाटा रियल-टाइम सिस्टम मेट्रिक्स मॉनिटरिंग के क्षेत्र में एक उभरता हुआ सितारा है। एक ही तरह के अन्य उपकरणों की तुलना में, नेटडाटा:

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? इस ट्यूटोरियल में, बीमार समझा जा रहा है कि CentOS 7 पर एक स्टारबाउंड सर्वर को कैसे सेटअप किया जाए। आवश्यक शर्तें आपको इस गेम को खुद पर बनाना होगा।

CentOS 7 पर Django कैसे स्थापित करें

CentOS 7 पर Django कैसे स्थापित करें

वेब एप्लिकेशन लिखने के लिए Django एक लोकप्रिय पायथन फ्रेमवर्क है। Django के साथ, आप तेजी से अनुप्रयोगों का निर्माण कर सकते हैं, पहिया को फिर से बनाए बिना। अगर आप चाहते हैं

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

एक अन्य Vultr ट्यूटोरियल में आपका स्वागत है। यहां, आप सीखेंगे कि एसएएमपी सर्वर कैसे स्थापित करें और चलाएं। यह गाइड CentOS 6 के लिए लिखा गया था

CentOS 7 पर Revive Adserver इनस्टॉल करना

CentOS 7 पर Revive Adserver इनस्टॉल करना

Revive Adserver एक स्वतंत्र और खुला स्रोत विज्ञापन सेवारत प्रणाली है जिसका उपयोग वेबसाइटों पर, ऐप्स में और / या वीडियो खिलाड़ियों में विज्ञापनों को प्रबंधित करने के लिए किया जा सकता है। इस लेख में,

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

पार्स सर्वर पार्स बैकेंड सेवा के लिए खुला स्रोत विकल्प है जिसे बंद किया जा रहा है। यदि आप इस सेवा के प्रशंसक हैं, तो आप अभी भी वें का आनंद ले सकते हैं

CentOS 7 पर एल्ग स्थापित करें

CentOS 7 पर एल्ग स्थापित करें

एक अलग प्रणाली का उपयोग? एल्ग एक खुला स्रोत सोशल नेटवर्किंग इंजन है जो परिसर के सामाजिक नेटवर्क जैसे सामाजिक वातावरण के निर्माण की अनुमति देता है

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

एक अलग प्रणाली का उपयोग? डायस्पोरा एक गोपनीयता-जागरूक, ओपन सोर्स सोशल नेटवर्क है। इस ट्यूटोरियल में, आप सीखेंगे कि डायस्पोरा पो को कैसे सेट और कॉन्फ़िगर करें

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

अवलोकन यह लेख आपको कुबेरनेट क्लस्टर प्राप्त करने और कुछ ही समय में कुबेदम के साथ चलने में मदद करने के लिए है। यह गाइड दो सर्वरों को तैनात करेगा

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

परिचय लिनक्स सिस्टम पर काम करने का मतलब है कि कोई कमांड लाइन का उपयोग अधिक बार नहीं कर रहा है। स्वागत के रूप में बार-बार लंबी निर्देशिका के नाम टाइप करना

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

ओपनकार्ट एक लोकप्रिय ओपन सोर्स शॉपिंग कार्ट सॉल्यूशन है जिसे उत्कृष्ट कार्यक्षमता, उपयोग में आसानी और उपस्थिति प्रदान करने के लिए डिज़ाइन किया गया है। OpenCart के साथ, आप सीए

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

एक अलग प्रणाली का उपयोग? परिचय Sails.js Node.js के लिए MVC फ्रेमवर्क है, जो रूबी ऑन रेल्स के समान है। यह आधुनिक अनुप्रयोगों को विकसित करने के लिए बनाता है

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

एक अलग प्रणाली का उपयोग? NGINX को HTTP / HTTPS सर्वर, रिवर्स प्रॉक्सी सर्वर, मेल प्रॉक्सी सर्वर, लोड बैलेंसर, TLS टर्मिनेटर, या कैचिन के रूप में उपयोग किया जा सकता है

CentOS 7 पर dotCMS कैसे स्थापित करें

CentOS 7 पर dotCMS कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? dotCMS जावा में लिखा एक ओपन सोर्स एंटरप्राइज ग्रेड कंटेंट मैनेजमेंट सिस्टम है। इसमें लगभग हर सुविधा आवश्यक टी होती है

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ