কীভাবে RHEL/CentOS 7 এ LXC (লিনাক্স কনটেইনারগুলি) ইনস্টল করবেন, পরিচালনা করবেন এবং পরিচালনা করবেন
লিনাক্স কনটেইনারগুলির সংক্ষিপ্ত রূপ এলএক্সসি হ'ল লাইটওয়েট লিনাক্স কার্নেল ভিত্তিক ভার্চুয়ালাইজেশন সলিউশন, যা কার্যত অপারেটিং সিস্টেমের শীর্ষে চলে, আপনাকে একই সময়ে একাধিক বিচ্ছিন্ন বিতরণ চালানোর অনুমতি দেয়।
এলএক্সসি এবং কেভিএম ভার্চুয়ালাইজেশনের মধ্যে পার্থক্য হ'ল এলএক্সসি হার্ডওয়্যারকে এমুলেট করে না, তবে ক্রট অ্যাপ্লিকেশনগুলির মতো একই কার্নেল নেমস্পেস ভাগ করে।
এটি ভিএমওয়্যারের মতো অন্যান্য ভার্চুয়ালাইজেশন সমাধানগুলির তুলনায় এলএক্সসিকে একটি খুব দ্রুত ভার্চুয়ালাইজেশন সমাধান করে তোলে।
এই নিবন্ধটি আপনাকে কিভাবে সেন্টস/আরএইচইএল এবং ফেডোরার বিতরণে এলএক্সসি পাত্রে ইনস্টল করতে, মোতায়েন করতে এবং চালাতে পারে সে সম্পর্কে আপনাকে গাইড করবে।
সর্বনিম্ন ইনস্টলেশন সহ একটি ওয়ার্কিং লিনাক্স অপারেটিং সিস্টেম:
- CentOS 7 লিনাক্সের ইনস্টলেশন
- আরএইচএল 7 এর ইনস্টলেশন
- ফেডোরা 23 সার্ভারের ইনস্টলেশন
পদক্ষেপ 1: লিনাক্সে এলএক্সসি ভার্চুয়ালাইজেশন ইনস্টল করা
1. এলএক্সসি ভার্চুয়ালাইজেশন এপেল সংগ্রহস্থলের মাধ্যমে সরবরাহ করা হয়। এই রেপোটি ব্যবহার করার জন্য, একটি কমান্ড খুলুন এবং নিম্নলিখিত কমান্ডটি জারি করে আপনার সিস্টেমে এপেল সংগ্রহস্থলগুলি ইনস্টল করুন:
# yum install epel-release
২. এলএক্সসি ইনস্টলেশন প্রক্রিয়া চালিয়ে যাওয়ার আগে, নিশ্চিত করুন যে পার্ল ভাষার দোভাষী এবং ডিবুটস্ট্র্যাপ প্যাকেজগুলি নীচের আদেশগুলি জারি করে ইনস্টল করা আছে।
# yum install debootstrap perl libvirt
৩. অবশেষে নিম্নলিখিত কমান্ডের সাহায্যে এলএক্সসি ভার্চুয়ালাইজেশন সমাধান ইনস্টল করুন।
# yum install lxc lxc-templates
৪. এলএক্সসি পরিষেবা ইনস্টল হওয়ার পরে, LXC এবং libvirt ডিমন চলছে কিনা তা যাচাই করুন।
# systemctl status lxc.service # systemctl start lxc.service # systemctl start libvirtd # systemctl status lxc.service
systemctl status lxc.service lxc.service - LXC Container Initialization and Autoboot Code Loaded: loaded (/usr/lib/systemd/system/lxc.service; disabled) Active: inactive (dead) systemctl start lxc.service systemctl status lxc.service lxc.service - LXC Container Initialization and Autoboot Code Loaded: loaded (/usr/lib/systemd/system/lxc.service; disabled) Active: active (exited) since Fri 2016-04-01 02:33:36 EDT; 1min 37s ago Process: 2250 ExecStart=/usr/libexec/lxc/lxc-autostart-helper start (code=exited, status=0/SUCCESS) Process: 2244 ExecStartPre=/usr/libexec/lxc/lxc-devsetup (code=exited, status=0/SUCCESS) Main PID: 2250 (code=exited, status=0/SUCCESS) Apr 01 02:33:06 mail systemd[1]: Starting LXC Container Initialization and Autoboot Code... Apr 01 02:33:06 mail lxc-devsetup[2244]: Creating /dev/.lxc Apr 01 02:33:06 mail lxc-devsetup[2244]: /dev is devtmpfs Apr 01 02:33:06 mail lxc-devsetup[2244]: Creating /dev/.lxc/user Apr 01 02:33:36 mail lxc-autostart-helper[2250]: Starting LXC autoboot containers: [ OK ] Apr 01 02:33:36 mail systemd[1]: Started LXC Container Initialization and Autoboot Code.
এবং নীচের কমান্ড জারি করে LXC কার্নেল ভার্চুয়ালাইজেশন স্থিতি পরীক্ষা করুন।
# lxc-checkconfig
lxc-checkconfig Kernel configuration not found at /proc/config.gz; searching... Kernel configuration found at /boot/config-3.10.0-229.el7.x86_64 --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled --- Control groups --- Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled Bridges: enabled Advanced netfilter: enabled CONFIG_NF_NAT_IPV4: enabled CONFIG_NF_NAT_IPV6: enabled CONFIG_IP_NF_TARGET_MASQUERADE: enabled CONFIG_IP6_NF_TARGET_MASQUERADE: enabled CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled --- Checkpoint/Restore --- checkpoint restore: missing CONFIG_FHANDLE: enabled CONFIG_EVENTFD: enabled CONFIG_EPOLL: enabled CONFIG_UNIX_DIAG: enabled CONFIG_INET_DIAG: enabled CONFIG_PACKET_DIAG: enabled CONFIG_NETLINK_DIAG: enabled File capabilities: enabled Note : Before booting a new kernel, you can check its configuration usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
পদক্ষেপ 2: লিনাক্সে এলএক্সসি কনটেইনারগুলি তৈরি এবং পরিচালনা করুন
৫. আপনার সিস্টেমে ইতিমধ্যে ইনস্টল হওয়া উপলব্ধ এলএক্সসি টেম্পলেটগুলির পাতাগুলির তালিকা তৈরি করতে নীচের কমান্ডটি জারি করুন।
# ls -alh /usr/share/lxc/templates/
total 344K drwxr-xr-x. 2 root root 4.0K Apr 1 02:32 . drwxr-xr-x. 6 root root 100 Apr 1 02:32 .. -rwxr-xr-x. 1 root root 11K Nov 15 10:19 lxc-alpine -rwxr-xr-x. 1 root root 14K Nov 15 10:19 lxc-altlinux -rwxr-xr-x. 1 root root 11K Nov 15 10:19 lxc-archlinux -rwxr-xr-x. 1 root root 9.7K Nov 15 10:19 lxc-busybox -rwxr-xr-x. 1 root root 29K Nov 15 10:19 lxc-centos -rwxr-xr-x. 1 root root 11K Nov 15 10:19 lxc-cirros -rwxr-xr-x. 1 root root 17K Nov 15 10:19 lxc-debian -rwxr-xr-x. 1 root root 18K Nov 15 10:19 lxc-download -rwxr-xr-x. 1 root root 49K Nov 15 10:19 lxc-fedora -rwxr-xr-x. 1 root root 28K Nov 15 10:19 lxc-gentoo -rwxr-xr-x. 1 root root 14K Nov 15 10:19 lxc-openmandriva -rwxr-xr-x. 1 root root 14K Nov 15 10:19 lxc-opensuse -rwxr-xr-x. 1 root root 35K Nov 15 10:19 lxc-oracle -rwxr-xr-x. 1 root root 12K Nov 15 10:19 lxc-plamo -rwxr-xr-x. 1 root root 6.7K Nov 15 10:19 lxc-sshd -rwxr-xr-x. 1 root root 23K Nov 15 10:19 lxc-ubuntu -rwxr-xr-x. 1 root root 12K Nov 15 10:19 lxc-ubuntu-cloud
A. এলএক্সসি পাত্রে তৈরি করার প্রক্রিয়াটি খুব সহজ। একটি নতুন ধারক তৈরি করতে কমান্ড সিনট্যাক্সটি নীচে ব্যাখ্যা করা হয়েছে।
# lxc-create -n container_name -t container_template
নীচের অংশে আমরা ডেবিয়ান
টেমপ্লেটের উপর ভিত্তি করে মাইদেব
নামে একটি নতুন ধারক তৈরি করব যা এলএক্সসি সংগ্রহস্থল থেকে সরিয়ে নেওয়া হবে।
lxc-create -n mydcb -t debian debootstrap is /usr/sbin/debootstrap Checking cache download in /var/cache/lxc/debian/rootfs-jessie-amd64 ... Downloading debian minimal ... W: Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... ... ...
Base. আপনার সিস্টেমে ডাউনলোড এবং ইনস্টল করা হবে এমন কয়েকটি বেস নির্ভরতা এবং প্যাকেজগুলির পরে ধারক তৈরি করা হবে। প্রক্রিয়া শেষ হয়ে গেলে কোনও বার্তা আপনার ডিফল্ট রুট অ্যাকাউন্টের পাসওয়ার্ড প্রদর্শন করবে। সুরক্ষিত হওয়ার জন্য একবার এই পাসওয়ার্ডটি পরিবর্তন করুন এবং ধারক কনসোলে লগইন করুন।
are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Failed to read /proc/cmdline. Ignoring: No such file or directory invoke-rc.d: policy-rc.d denied execution of start. Timezone in container is not configured. Adjust it manually. Root password is 'root', please change ! Generating locales (this might take a while)... en_IN.en_IN...character map file `en_IN' not found: No such file or directory /usr/share/i18n/locales/en_IN:55: LC_MONETARY: unknown character in field `currency_symbol' done Generation complete.
৮. এখন, আপনি চলমান/থামানো ধারক সম্পর্কে তথ্য পেতে আপনার পাত্রে এবং lxc-info
তালিকাভুক্ত করতে lxc-ls
ব্যবহার করতে পারেন।
ব্যাকগ্রাউন্ডে সদ্য নির্মিত কনটেইনারটি শুরু করার জন্য ( -ড
বিকল্পটি উল্লেখ করে ডেমন হিসাবে চলবে) নিম্নলিখিত কমান্ডটি জারি করুন:
# lxc-start -n mydeb -d
9. কনটেইনারটি শুরু করার পরে আপনি lxc-ls --active
কমান্ডটি ব্যবহার করে চলমান পাত্রে তালিকাভুক্ত করতে পারেন এবং চলমান ধারক সম্পর্কে বিস্তারিত তথ্য পেতে পারেন।
# lxc-ls --active
১০. কনটেইনার কনসোলটিতে লগইন করার জন্য চলমান ধারক নামের বিরুদ্ধে lxc-console
কমান্ডটি ইস্যু করুন। ব্যবহারকারী রুট এবং পাসওয়ার্ডের সাথে লগইন করুন ডিফল্টরূপে উত্পাদিত এলএক্সসি সুপারভাইজারের মাধ্যমে।
একবার কনটেইনারটিতে লগইন হয়ে গেলে আপনি /etc/issue.net
ফাইলের সামগ্রী প্রদর্শন করে বিতরণ যাচাই করতে কয়েকটি কমান্ড চালাতে পারেন, passwd
কমান্ড জারি করে রুট পাসওয়ার্ড পরিবর্তন করুন অথবা ifconfig
এর সাথে নেটওয়ার্ক ইন্টারফেস সম্পর্কে বিশদ দেখুন।
# lxc-console -n mydeb # cat /etc/issue.net # ifconfig # passwd
lxc-console -n mydcb Connected to tty 1 Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself Debian GNU/Linux 8 mydcb tty1 mydcb login: root Password: Last login: Fri Apr 1 07:39:08 UTC 2016 on console Linux mydcb 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. [email :~# cat /etc/issue.net Debian GNU/Linux 8 [email :~# ifconfig eth0 Link encap:Ethernet HWaddr 00:16:3e:d9:21:d7 inet6 addr: fe80::216:3eff:fed9:21d7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5796 (5.6 KiB) TX bytes:648 (648.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) [email :~# passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
১১. কনটেইনার কনসোল থেকে বিচ্ছিন্ন হয়ে আপনার হোস্ট কনসোলটিতে ফিরে যেতে, ধারকটিকে সক্রিয় অবস্থায় রেখে, কীবোর্ডের Ctrl + a
তারপর q
চাপুন।
চলমান ধারকটি বন্ধ করতে নিম্নলিখিত কমান্ডটি ইস্যু করুন।
# lxc-stop -n mydcb
12. কোনও উবুন্টু টেমপ্লেটের উপর ভিত্তি করে একটি এলএক্সসি ধারক তৈরি করতে /usr/sbin/
ডিরেক্টরিটি প্রবেশ করুন এবং নীচের ডিবাটস্ট্র্যাপ সিমিলিংক তৈরি করুন।
# cd /usr/sbin # ln -s debootstrap qemu-debootstrap
১৩. ভিআই সম্পাদকের সাথে কিউমু-ডিবুটস্ট্র্যাপ
ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিত দুটি মিরর লাইন প্রতিস্থাপন করুন:
DEF_MIRROR=”http://mirrors.kernel.org/ubuntu” DEF_HTTPS_MIRROR=”https://mirrors.kernel.org/ubuntu”
রেফারেন্সের জন্য, নিম্নলিখিত সামগ্রীটি দেখুন এবং উপরে বর্ণিত দুটি লাইন রাখুন:
.... MAKE_TARBALL="" EXTRACTOR_OVERRIDE="" UNPACK_TARBALL="" ADDITIONAL="" EXCLUDE="" VERBOSE="" CERTIFICATE="" CHECKCERTIF="" PRIVATEKEY="" DEF_MIRROR=”http://mirrors.kernel.org/ubuntu” DEF_HTTPS_MIRROR=”https://mirrors.kernel.org/ubuntu”
১৪. অবশেষে একই lxc-create
কমান্ড জারি করে উবুন্টু টেমপ্লেটের ভিত্তিতে একটি নতুন এলএক্সসি ধারক তৈরি করুন।
উবুন্টু ধারক তৈরির প্রক্রিয়াটি একবার শেষ হয়ে গেলে কোনও বার্তা নীচের স্ক্রিনশটে চিত্রিত হিসাবে আপনার ধারক ডিফল্ট লগইন শংসাপত্রগুলি প্রদর্শন করবে।
# lxc-create -n myubuntu -t ubuntu
Checking cache download in /var/cache/lxc/precise/rootfs-amd64 ... Installing packages in template: ssh,vim,language-pack-en Downloading ubuntu precise minimal ...
15. স্থানীয় টেম্পলেট ভিত্তিক একটি নির্দিষ্ট ধারক তৈরি করতে নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:
# lxc-create -n container_name -t container_template -- -r distro_release -a distro_architercture
একটি amd64 সিস্টেম আর্কিটেকচার সহ একটি ডেবিয়ান হুইজি ধারক তৈরির একটি অংশ এখানে দেওয়া হয়েছে।
# lxc-create -n mywheezy -t debian -- -r wheezy -a amd64
debootstrap is /sbin/debootstrap Checking cache download in /var/cache/lxc/debian/rootfs-wheezy-amd64 ... Downloading debian minimal ... W: Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... I: Found additional required dependencies: insserv libbz2-1.0 libdb5.1 libsemanage-common libsemanage1 libslang2 libustr-1.0-1 I: Found additional base dependencies: adduser debian-archive-keyring gnupg gpgv isc-dhcp-common libapt-pkg4.12 libbsd0 libclass-isa-perl libedit2 libgdbm3 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libncursesw5 libprocps0 libreadline6 libssl1.0.0 libstdc++6 libswitch-perl libusb-0.1-4 libwrap0 openssh-client perl perl-modules procps readline-common I: Checking component main on http://http.debian.net/debian... I: Retrieving libacl1 2.2.51-8 I: Validating libacl1 2.2.51-8 I: Retrieving adduser 3.113+nmu3 I: Validating adduser 3.113+nmu3 I: Retrieving apt 0.9.7.9+deb7u7 I: Validating apt 0.9.7.9+deb7u7 I: Retrieving libapt-pkg4.12 0.9.7.9+deb7u7 I: Validating libapt-pkg4.12 0.9.7.9+deb7u7 I: Retrieving libattr1 1:2.4.46-8 I: Validating libattr1 1:2.4.46-8 I: Retrieving base-files 7.1wheezy9 I: Validating base-files 7.1wheezy9 I: Retrieving base-passwd 3.5.26 ...
১.. উদাহরণস্বরূপ, জেনেরিক টেম্পলেট থেকে বিভিন্ন ডিস্ট্রো রিলিজ এবং আর্কিটেকচারের জন্য নির্দিষ্ট পাত্রে তৈরি করা যেতে পারে যা নীচের উদাহরণে বর্ণিত হিসাবে এলএক্সসি সংগ্রহস্থল থেকে ডাউনলোড করা হবে।
# lxc-create -n mycentos6 -t download -- -d centos -r 6 -a i386
এখানে lxc-create
কমান্ড লাইন সুইচগুলির তালিকা রয়েছে:
-n = name -t = template -d = distibution -a = arch -r = release
17. কনটেইনার নামের বিরুদ্ধে জারি করা lxc-नष्ट > কমান্ডের সাহায্যে আপনার হোস্ট থেকে ধারকগুলি মুছে ফেলা যাবে।
# lxc-destroy -n mywheezy
18. একটি কনটেইনারটি একটি বিদ্যমান ধারক থেকে lxc-clone
কমান্ড জারি করে ক্লোন করা যেতে পারে:
# lxc-clone mydeb mydeb-clone
১৯. এবং অবশেষে, সমস্ত তৈরি পাত্রে /var/lib/lxc/
ডিরেক্টরিতে থাকে। যদি কোনও কারণে আপনাকে ম্যানুয়ালি ধারক সেটিংস সামঞ্জস্য করতে হয় তবে আপনাকে অবশ্যই প্রতিটি কন্টেইনার ডিরেক্টরি থেকে কনফিগার ফাইলটি সম্পাদনা করতে হবে।
# ls /var/lib/lxc
এলএক্সসির আশেপাশে আপনার পথে কাজ করার জন্য আপনাকে কেবল এটি প্রাথমিক জিনিসগুলি জানতে হবে।