Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> डेटाबेस

सोर्स से OpenStack इंस्टॉल करना: Glance सेटअप (भाग 2)

इस श्रृंखला के पहले लेख में, हमने सोर्स से OpenStack इंस्टॉल करना शुरू किया था। हमने Keystone इंस्टॉल किया और उसमें कुछ बुनियादी जानकारी भरी, जिसमें एक Services प्रोजेक्ट और हमारे नए OpenStack इंस्टॉल के लिए एक एडमिन यूज़र शामिल था। इसके अलावा, एक प्रारंभिक स्क्रिप्ट में हमने आने वाले Image Service (Glance), Networking Service (Neutron), Compute Service (Nova) और Volume Service (Cinder) के इंस्टॉलेशन के लिए यूज़र्स और डायरेक्टरीज़ सेटअप की थीं। अब, आइए कंट्रोलर नोड पर Glance प्रोसेस को इंस्टॉल और शुरू करके आगे बढ़ते हैं।

पर्यावरण वेरिएबल्स की जांच

पहले लेख में, हमने अपने bashrc फाइल में कुछ जानकारी जोड़ी थी ताकि शेष सेट्स में उपयोग के लिए कुछ शेल वेरिएबल्स सेट हो सकें। सत्यापित करें कि इनमें से कम से कम एक वेरिएबल सेट है:

echo $MY_IP

Glance सब-डायरेक्टरीज़ बनाना

Image Service (Glance) इंस्टॉल करना शुरू करने के लिए, हमें कुछ अतिरिक्त Glance सब-डायरेक्टरीज़ बनाने की आवश्यकता है और यह सुनिश्चित करना होगा कि उनके पास उचित परमिशन हैं (बुनियादी Glance डायरेक्टरीज़ पिछले लेख में एक स्क्रिप्ट द्वारा बनाई गई थीं):

mkdir -p /var/lib/glance/images
mkdir -p /var/lib/glance/scrubber
mkdir -p /var/lib/glance/image-cache

Glance डाउनलोड और इंस्टॉल करना

इसके बाद, Glance रिपॉजिटरी को डाउनलोड (क्लोन) करें और इंस्टॉल करें:

git clone https://github.com/openstack/glance.git -b stable/kilo

नोट: याद रखें कि हम `-b stable/kilo` को हटाकर ट्रंक से इंस्टॉल कर सकते हैं।

cp -R glance/etc/* /etc/glance/
cd glance
python setup.py install

Glance कॉन्फ़िगर करना

डेटाबेस कनेक्शन, मैसेज क्यू और Keystone कनेक्शन जैसी बुनियादी जानकारी सेट करके Glance को कॉन्फ़िगर करें:

sed -i "s|#connection = <None>|connection = mysql://glance:glance@$MY_PRIVATE_IP/glance|g" /etc/glance/glance-api.conf
sed -i "s/rabbit_host = localhost/rabbit_host = $MY_PRIVATE_IP/g" /etc/glance/glance-api.conf
sed -i "s/auth_host = 127.0.0.1/auth_host = $MY_PRIVATE_IP/g" /etc/glance/glance-api.conf
sed -i 's/%SERVICE_TENANT_NAME%/service/g' /etc/glance/glance-api.conf
sed -i 's/%SERVICE_USER%/glance/g' /etc/glance/glance-api.conf
sed -i 's/%SERVICE_PASSWORD%/glance/g' /etc/glance/glance-api.conf
sed -i 's/#flavor=/flavor = keystone/g' /etc/glance/glance-api.conf
sed -i 's/#show_image_direct_url = False/show_image_direct_url = True/g' /etc/glance/glance-api.conf

Glance-Registry कॉन्फ़िगर करना

ऊपर दी गई जानकारी के साथ Glance-Registry को कॉन्फ़िगर करें:

sed -i "s|#connection = <None>|connection = mysql://glance:glance@$MY_PRIVATE_IP/glance|g" /etc/glance/glance-registry.conf
sed -i "s/auth_host = 127.0.0.1/auth_host = $MY_PRIVATE_IP/g" /etc/glance/glance-registry.conf
sed -i 's/%SERVICE_TENANT_NAME%/service/g' /etc/glance/glance-registry.conf
sed -i 's/%SERVICE_USER%/glance/g' /etc/glance/glance-registry.conf
sed -i 's/%SERVICE_PASSWORD%/glance/g' /etc/glance/glance-registry.conf
sed -i 's/#flavor=/flavor = keystone/g' /etc/glance/glance-registry.conf
sed -i "s|#connection = <None>|connection = mysql://glance:glance@$MY_IP|g" /etc/glance/glance-api.conf
sed -i "s|#connection = <None>|connection = mysql://glance:glance@$MY_IP|g" /etc/glance/glance-registry.conf

MySQL डेटाबेस बनाना और टेबल्स पॉपुलेट करना

Glance के लिए MySQL डेटाबेस बनाएं और नए बने डेटाबेस को Glance टेबल्स से पॉपुलेट करें:

mysql -u root -pmysql -e 'CREATE DATABASE glance;'
mysql -u root -pmysql -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';"
mysql -u root -pmysql -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';"
glance-manage db_sync

Glance Image Sync इंस्टॉल करना (वैकल्पिक)

हालांकि इस वातावरण में इसकी आवश्यकता नहीं है, हम glance-image-sync इंस्टॉल करेंगे और इसे नियमित आधार पर चलने के लिए सेट करेंगे। यदि हमारे पास कई Glance API नोड्स होते, तो यह नोड्स के बीच Glance इमेजेज़ को सिंक करता:

git clone https://github.com/rcbops/glance-image-sync
pushd glance-image-sync
mv glance-image-sync.py /usr/local/bin/glance-image-sync
chmod +x /usr/local/bin/glance-image-sync
popd
cat >> /etc/glance/glance-image-sync << EOF
[DEFAULT]
api_nodes = $MY_IP
rsync_user = glance
lock_file = /var/run/glance-image-sync
EOF
cat >> /etc/cron.d/glance-image-sync << EOF
*/5 * * * * glance /usr/local/bin/glance-image-sync
EOF

Glance लॉग फाइल्स रोटेट करना

हमें Glance लॉग फाइल्स को रोटेट करना याद रखना चाहिए:

cat >> /etc/logrotate.d/glance << EOF
/var/log/glance/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    nocreate
}
EOF

Keystone साइनिंग सर्टिफिकेट्स प्राप्त करना

यदि आपको Image Service के लिए Identity Service साइनिंग सर्टिफिकेट नहीं मिलते हैं, तो Image API रिक्वेस्ट फेल हो जाएंगी। Glance के लिए Keystone साइनिंग सर्टिफिकेट प्राप्त करके इसे रोकें:

cp /etc/keystone/ssl/certs/ca.pem /var/lib/glance/cacert.pem
cp /etc/keystone/ssl/certs/signing_cert.pem /var/lib/glance/
chown glance:glance /var/lib/glance/*
chmod 600 /var/lib/glance/cacert.pem
chmod 600 /var/lib/glance/signing_cert.pem

Glance Upstart स्क्रिप्ट्स बनाना

हम Glance शुरू करने के लिए लगभग तैयार हैं, लेकिन पहले हमें Glance Upstart स्क्रिप्ट्स बनानी होंगी:

नोट: ये स्क्रिप्ट्स Ubuntu ऑपरेटिंग सिस्टम के पैकेज्ड वर्जन द्वारा इंस्टॉल की गई स्क्रिप्ट्स से कॉपी की गई हैं।

cat >> /etc/init/glance-api.conf << EOF
description "Glance API server"
author "Soren Hansen <soren@linux2go.dk>"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec start-stop-daemon --start --chuid glance --exec /usr/local/bin/glance-api -- --config-file=/etc/glance/glance-api.conf --config-file=/etc/glance/glance-api-paste.ini
EOF

cat >> /etc/init/glance-registry.conf << EOF
description "Glance registry server"
author "Soren Hansen <soren@linux2go.dk>"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec start-stop-daemon --start --chuid glance --exec /usr/local/bin/glance-registry -- --config-file=/etc/glance/glance-registry.conf --config-file=/etc/glance/glance-registry-paste.ini
EOF

Glance शुरू करना और वेरिफाई करना

Glance शुरू करें और सत्यापित करें कि यह चल रहा है:

start glance
start glance-registry

लगभग 15 सेकंड प्रतीक्षा करें और Glance चल रहा है या नहीं, यह जांचने के लिए निम्नलिखित चलाएं:

ps aux|grep glance

यदि Glance शुरू हुआ, तो हमें अंतिम कमांड के आउटपुट में चल रही प्रोसेस के बारे में जानकारी दिखनी चाहिए। यदि ऐसा नहीं हुआ और Glance शुरू नहीं हुआ या चल नहीं रहा है, तो समस्या निवारण के लिए मैन्युअल रूप से Glance शुरू करने के लिए निम्नलिखित का उपयोग करें:

sudo -u glance glance-api --config-file=/etc/glance/glance-api.conf --config-file=/etc/glance/glance-api-paste.ini > /dev/null 2>&1 &
sudo -u glance glance-registry --config-file=/etc/glance/glance-registry.conf --config-file=/etc/glance/glance-registry-paste.ini > /dev/null 2>&1 &

नोट: फाइल `/etc/glance/glance.conf` में `debug = True` वैल्यू सेट करने से लॉगिंग आउटपुट बढ़ जाएगा, जो विफलताओं को डीबग करने में मदद करेगा।

Glance में इमेज इंस्टॉल करना

अब, एक बार OpenStack पूरी तरह से इंस्टॉल हो जाने पर उपयोग के लिए VMs के आधार के रूप में Glance में एक इमेज इंस्टॉल करें। Ubuntu ऑपरेटिंग सिस्टम पर आधारित एक छोटा क्लाउड इमेज उपलब्ध है, जिसका नाम Cirros है। Glance चलने के साथ, Cirros इमेज डाउनलोड करें और इसे Glance में लोड करें:

wget https://cdn.download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
glance image-create --name=cirros-qcow2 \
--disk-format=qcow2 \
--container-format=bare \
--is-public=true < cirros-0.3.3-x86_64-disk.img

अगले चरण: Neutron इंस्टॉलेशन

हमारा दूसरा प्रोसेस अब चल रहा है और अब हम Networking Service (Neutron) इंस्टॉल करने पर ध्यान दे सकते हैं। यह तीन Neutron इंस्टॉलेशन में से पहला है जो हमें करना होगा: कंट्रोलर नोड पर Neutron सर्वर और नेटवर्क तथा कंप्यूट नोड्स पर Neutron एजेंट्स।

Sudo परमिशन सेटअप करना

चूंकि Nova, Neutron और Glance प्रोसेस को विभिन्न कार्यों को पूरा करने के लिए रूट या sudo विशेषाधिकारों की आवश्यकता होती है, हमें इन प्रोसेस यूज़र्स के लिए विशेष sudo परमिशन बनाने की आवश्यकता है। OpenStack रूटवैप कॉन्फ़िगरेशन के उपयोग के माध्यम से इन विशेषाधिकारों की सीमा भी सीमित करता है। Sudo परमिशन सेटअप करने के लिए निम्नलिखित स्क्रिप्ट चलाएं:

for SERVICE in neutron nova cinder
do
  echo $SERVICE
  cat > '/etc/sudoers.d/'$SERVICE'_sudoers' << EOF
Defaults:$SERVICE !requiretty
$SERVICE ALL = (root) NOPASSWD: /usr/local/bin/$SERVICE-rootwrap /etc/$SERVICE/rootwrap.conf *
EOF
  chmod 440 /etc/sudoers.d/$SERVICE_sudoers
done
chmod 750 /etc/sudoers.d

Pip प्रीरेक्विज़िट्स के लिए पैकेज इंस्टॉल करना

कुछ Pip प्रीरेक्विज़िट्स में कुछ पैकेज प्रीरेक्विज़िट्स होते हैं जो स्वचालित रूप से इंस्टॉल नहीं होते। ये पैकेज अभी इंस्टॉल करें:

apt-get -y install git mysql-client python-dev libxml2-dev libffi-dev

Neutron रिपॉजिटरी क्लोन करना

git clone https://github.com/openstack/neutron.git -b stable/kilo

कॉन्फ़िगरेशन फाइल्स कॉपी करना

cp neutron/etc/* /etc/neutron/

आवश्यक कॉन्फ़िगरेशन सबडायरेक्टरीज़ कॉपी करना

cp -R neutron/etc/neutron/plugins/ml2/* /etc/neutron/plugins/ml2
cp -R neutron/etc/neutron/rootwrap.d/* /etc/neutron/rootwrap.d

Neutron इंस्टॉल करना

cd neutron
python setup.py install
cd ~

Neutron के लिए MySQL डेटाबेस बनाना

mysql -u root -pmysql -e 'CREATE DATABASE neutron;'
mysql -u root -pmysql -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';"
mysql -u root -pmysql -e "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';"

Keystone में Neutron सर्विस यूज़र बनाना

पिछले लेख में चलाया गया सैंपल डेटा स्क्रिप्ट Neutron सर्विस के लिए डेटा नहीं डालता। Keystone में Neutron सर्विस यूज़र बनाएं:

keystone user-create --tenant service --name neutron --pass neutron

Neutron सर्विस यूज़र को 'admin' भूमिका देना

keystone user-role-add --user neutron --tenant service --role admin

यूज़र निर्माण वेरिफाई करना

सर्विस यूज़र्स और भूमिकाओं को सूचीबद्ध करें और सत्यापित करें कि Neutron यूज़र मौजूद है और उसके पास एडमिन भूमिका है:

keystone user-list --tenant Services
keystone user-role-list --tenant service --user neutron

आपको पिछले दो कमांड के आउटपुट में देखना चाहिए कि Neutron यूज़र बनाया गया था और उसके पास उचित परमिशन हैं।

Keystone सर्विस कैटलॉग में Neutron सर्विस पॉपुलेट करना

keystone service-create --name=neutron --type=network --description="Neutron Network Service"

Keystone सर्विस कैटलॉग में Neutron एंडपॉइंट जानकारी रखना

keystone endpoint-create --region RegionOne --service neutron --publicurl=https://$MY_PUBLIC_IP:9696 --internalurl=https://$MY_PRIVATE_IP:9696 --adminurl=https://$MY_PRIVATE_IP:9696
SERVICE_TENANT_ID=`keystone tenant-get service | awk '/ id / { print $4 }'`

Neutron कॉन्फ़िगर करना

अंत में, हमें Neutron कॉन्फ़िगर करना होगा। यदि बेसिक कॉन्फ़िगरेशन फाइल पैकेज क्लोज प्रोसेस में सप्लाई की गई है, तो उसे हटा दें, क्योंकि यह बहुत लंबी और संपादित करने में कठिन है। निम्नलिखित क्रम इसे एक सरल फाइल से बदल देगा (मूल अभी भी क्लोन की गई Neutron डायरेक्टरी में है यदि हमें भविष्य में इसे देखने की आवश्यकता हो):

rm /etc/neutron/neutron.conf
cat > /etc/neutron/neutron.conf << EOF
[DEFAULT]
verbose = True
debug = True
core_plugin = ml2
service_plugins = router
auth_strategy = keystone
allow_overlapping_ips = True
dhcp_agents_per_network = 1
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = https://$MY_PRIVATE_IP:8774/v2
nova_admin_username = nova
nova_admin_tenant_id = $SERVICE_TENANT_ID
#nova_admin_tenant_name = service
nova_admin_password = nova
nova_admin_auth_url = https://$MY_PRIVATE_IP:35357/v2.0
[agent]
root_helper=sudo /usr/local/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
[keystone_authtoken]
auth_uri = https://$MY_PRIVATE_IP:35357/v2.0/
identity_uri = https://$MY_PRIVATE_IP:5000
admin_tenant_name = service
admin_user = neutron
admin_password = neutron
[database]
connection = mysql://neutron:neutron@$MY_PRIVATE_IP/neutron
[oslo_concurrency]
lock_path = /var/lock/neutron
[oslo_messaging_rabbit]
rabbit_host = $MY_PRIVATE_IP
EOF

Neutron लॉग फाइल्स रोटेट करना

cat >> /etc/logrotate.d/neutron << EOF
/var/log/neutron/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    nocreate
}
EOF

ML2 प्लगइन कॉन्फ़िगर करना

Neutron ML2 प्लगइन के माध्यम से कई नेटवर्किंग लेयर 2 तकनीकों का समर्थन करता है। प्रोजेक्ट नेटवर्क आइसोलेशन के लिए GRE टनल्स का उपयोग करने के लिए Neutron ML2 प्लगइन एजेंट को कॉन्फ़िगर करें। हालांकि यह एजेंट कंट्रोलर नोड पर नहीं चलता, Neutron सर्वर को प्लगइन के बारे में जानना आवश्यक है:

rm /etc/neutron/plugins/ml2/ml2_conf.ini
cat > /etc/neutron/plugins/ml2/ml2_conf.ini << EOF
[ml2]
type_drivers = gre
tenant_network_types = gre
mechanism_drivers = openvswitch
[ml2_type_gre]
tunnel_id_ranges = 1:1000
[securitygroup]
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
EOF
chown neutron:neutron /etc/neutron/*.{conf,json,ini}
chown -R neutron:neutron /etc/neutron/plugins
cat > /etc/default/neutron << EOF
--config-file=/etc/neutron/plugins/ml2/ml2_conf.ini
EOF

Neutron डेटाबेस टेबल्स बनाना

जैसा हमने Glance के लिए किया था, Neutron डेटाबेस टेबल्स बनाएं:

neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head

Neutron स्टार्टअप स्क्रिप्ट ऑप्शन सेट करना

Neutron प्रोसेस शुरू करने से पहले, हमें स्टार्टअप स्क्रिप्ट को कुछ ऑप्शन जानकारी देनी होगी ताकि यह ML2 कॉन्फ़िगरेशन फाइल पढ़ सके:

cat > /etc/default/neutron-server << EOF
NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/ml2/ml2_conf.ini"
EOF

Neutron Upstart स्क्रिप्ट्स बनाना

और अंत में, Neutron सर्वर प्रोसेस शुरू करने के लिए उपयोग की जाने वाली Upstart स्क्रिप्ट्स बनाएं:

cat > /etc/init/neutron-server.conf << EOF
# vim:set ft=upstart ts=2 et:
start on runlevel [2345]
stop on runlevel [!2345]
script
[ -r /etc/default/neutron-server ] && . /etc/default/neutron-server
[ -r "\$NEUTRON_PLUGIN_CONFIG" ] && CONF_ARG="--config-file \$NEUTRON_PLUGIN_CONFIG"
exec start-stop-daemon --start --chuid neutron --exec /usr/local/bin/neutron-server -- \
--config-file /etc/neutron/neutron.conf \
--log-file /var/log/neutron/server.log \$CONF_ARG
end script
EOF

Neutron सर्वर शुरू करना और वेरिफाई करना

Neutron सर्वर चलाएं और सत्यापित करें कि यह चलता रहता है। दूसरी लाइन चल रहे Neutron प्रोसेस के बारे में जानकारी देती है (फिर से दूसरी कमांड चलाने से पहले लगभग 15 सेकंड प्रतीक्षा करें):

start neutron
ps aux|grep neutron

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

sudo -u neutron neutron-server --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini --log-file /var/log/neutron/server.log

इस श्रृंखला के अगले लेख में, हम कंट्रोलर नोड पर कई Nova प्रोसेस इंस्टॉल करेंगे।

  1. Microsoft Store से Windows 10 थीम इंस्टॉल करें: चरण-दर-चरण गाइड Microsoft Store से Windows 10 थीम इंस्टॉल करें: चरण-दर-चरण गाइड

    Windows 10 Creators Update ने एक पुनर्निर्मित डेस्कटॉप थीमिंग अनुभव पेश किया। अब आप Windows Store में क्यूरेटेड चयन से थीम डाउनलोड और इंस्टॉल कर सकते हैं, जिससे अपने PC के लुक और फील को रीफ्रेश करना सरल हो जाता है। डेस्कटॉप बैकग्राउंड, एक्सेंट कलर, साउंड और कर्सर को बदलने वाली थीम लंबे समय से Window

  1. Windows 10/11 पर कमांड प्रॉम्प्ट या PowerShell का उपयोग करके ऐप्स तेजी से इंस्टॉल करें Windows 10/11 पर कमांड प्रॉम्प्ट या PowerShell का उपयोग करके ऐप्स तेजी से इंस्टॉल करें

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

  1. चरण-दर-चरण: USB ड्राइव का उपयोग करके स्क्रैच से विंडोज 11 इंस्टॉल करें चरण-दर-चरण: USB ड्राइव का उपयोग करके स्क्रैच से विंडोज 11 इंस्टॉल करें

    माइक्रोसॉफ्ट ने विंडोज 11 जारी किया है, दुनिया में सबसे अधिक उपयोग किए जाने वाले कंप्यूटर ऑपरेटिंग सिस्टम का नया संस्करण। विंडोज 11 ऑपरेटिंग सिस्टम के नवीनतम संस्करण में गेमिंग पर्क्स, सरलीकृत लेआउट, सहज शॉर्टकट और बहुत कुछ सहित कई नई सुविधाएं हैं। यदि आपके पास एक विंडोज 10 कंप्यूटर है जो विंडोज 11