Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ในบทความนี้ เราจะครอบคลุมขั้นตอนพื้นฐานที่จำเป็นในการติดตั้ง Linux CentOS 8 แบบสะอาดจากศูนย์ และการตั้งค่าเซิร์ฟเวอร์เบื้องต้น

มีอะไรใหม่ใน CentOS 8?

เวอร์ชันที่ 8 ของ CentOS เปิดตัวเมื่อวันที่ 24 กันยายน 2019 CentOS เป็นการกระจาย Linux ที่พัฒนาจาก Red Hat Enterprise Linux (RHEL) โดย Red Hat และเข้ากันได้อย่างสมบูรณ์

มาดูการเปลี่ยนแปลงหลักในการเปิดตัว CentOS 8:

  • ใช้ Linux kernel 4.18;
  • เปลี่ยนจากตัวจัดการแพ็กเกจ yum เป็น dnf ปัจจุบัน yum ยังคงมีอยู่ในรูปแบบ symlink ไปยัง dnf;
  • คลังหลัก (repository) ถูกแบ่งออกเป็น 2 ส่วนคือ BaseOS และ AppStream เพื่อให้ผู้ใช้ติดตั้งเวอร์ชันแพ็กเกจที่แตกต่างกันได้ BaseOS ทำงานเหมือนเดิม;
  • ซอฟต์แวร์ทุกอย่างได้รับการอัปเดต รวมถึงเคอร์เนล ตอนนี้สามารถติดตั้ง PHP 7.2 จากคลังพื้นฐานได้แล้ว (สุดท้ายก็มี!);
  • Iptables ถูกแทนที่ด้วย nftables;
  • Network-scripts ไม่ได้ถูกใช้เป็นค่าเริ่มต้นในการกำหนดค่าเครือข่าย ควรใช้ Network Manager ในการจัดการเครือข่าย;
  • ติดตั้งเว็บอินเตอร์เฟซจัดการเซิร์ฟเวอร์ cockpit โดยค่าเริ่มต้น (สะดวกสำหรับมือใหม่);
  • ใช้ Podman (แทน Docker หรือ Moby) ในการจัดการคอนเทนเนอร์;
  • มี TCP/IP stack เวอร์ชันใหม่ 4.16 เพื่อประสิทธิภาพสูงกว่าและรองรับอัลกอริทึมควบคุม BBR และ NV;
  • เวอร์ชันการกระจายใหม่ๆ

วิธีติดตั้ง CentOS 8 จากไฟล์ ISO Image

เนื่องจากผมติดตั้ง CentOS บนเครื่องเสมือน KVM ผมจึงดาวน์โหลดไฟล์ ISO ติดตั้งจาก mirror ทางการ (https://www.centos.org/download/mirrors/) ล่วงหน้า และมาวน์ท์เพื่อติดตั้ง OS บนเซิร์ฟเวอร์เสมือน (หากต้องการติดตั้งบนเซิร์ฟเวอร์จริง ให้เขียนไฟล์ ISO ลง USB) กระบวนการติดตั้ง CentOS 8 ไม่แตกต่างจากเวอร์ชันก่อนหน้า และบทความนี้เป็นคู่มือสำหรับผู้ที่ทำครั้งแรก

ข้อกำหนดขั้นต่ำที่แนะนำสำหรับการติดตั้ง CentOS 8 คือ พื้นที่ดิสก์อย่างน้อย 10GB และ 712MB RAM ต่อ CPU core

บูทคอมพิวเตอร์หรือเครื่องเสมือนจากไฟล์ติดตั้ง CentOS ในขั้นตอนแรก จะมีเมนูให้เลือกการดำเนินการต่อ เนื่องจากเราต้องการติดตั้ง ให้เลือกเมนูแรก:

Install CentOS Linux 8.0.1905

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

หลังจากเลือกแล้ว กระบวนการติดตั้งจะเริ่มขึ้น:

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ระหว่างที่โหลดซอฟต์แวร์ที่จำเป็น คุณสามารถดูได้เลย ไม่ต้องทำอะไร

เมื่อหน้าจอสีดำเปลี่ยนเป็นโหมดโต้ตอบพร้อมโลโก้ CentOS ให้เตรียมคีย์บอร์ดและเมาส์ไว้

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ที่หน้าจอต้อนรับ จะให้เลือกภาษาที่ใช้ในการติดตั้ง จากนั้นคลิก Continue ในเมนูถัดไปจะเลือกการตั้งค่าติดตั้ง CentOS พื้นฐาน

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

เพื่อเริ่มติดตั้ง จำเป็นต้องกำหนดค่าเพียงรายการเดียวคือ Installation Destination ที่นี่เลือกเลย์เอาต์พาร์ติชันดิสก์ แต่ผมชอบกำหนดค่าเครือข่าย เวลา และวันที่ในขั้นตอนนี้

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

เลือกการตั้งค่าตามโซนเวลาของคุณ

เพื่อกำหนดค่าเครือข่าย ให้คลิก Network & Host Name

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ระบุชื่อเซิร์ฟเวอร์ในช่อง Host Name และคลิก Configure เพื่อกำหนดค่าอินเตอร์เฟซเครือข่าย

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ในแท็บ General ให้ติ๊ก Automatically connect to this network when it is available เพื่อเริ่มอินเตอร์เฟซเครือข่ายนี้โดยอัตโนมัติ

ไปที่แท็บ IPv4 Settings (หรือ IPv6 หากใช้โปรโตคอลนี้) เพื่อตั้งค่า IP address, netmask, gateway และ DNS servers:

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

เพื่อระบุ IP address เฉพาะ ให้เลือก method เป็น Manual และคลิก Add หลังจากบันทึกการเปลี่ยนแปลง ให้กลับไปหน้าจอตั้งค่าเครือข่ายหลัก

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ตามภาพหน้าจอ IP address ถูกเพิ่มแล้ว และอินเตอร์เฟซเครือข่ายทำงานอยู่ (status: Connected)

ขั้นตอนต่อไปคือการแบ่งพาร์ติชันดิสก์:

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

เพื่อแสดงกระบวนการติดตั้ง ผมใช้การกำหนดค่าพื้นที่จัดเก็บอัตโนมัติของนักพัฒนา CentOS หากต้องการแบ่งพาร์ติชันดิสก์ด้วยวิธีอื่น ให้เลือก Custom

หากคอนโทรลเลอร์จัดเก็บของเซิร์ฟเวอร์ไม่รองรับ hardware RAID สามารถกำหนดค่า software RAID บนดิสก์เซิร์ฟเวอร์โดยใช้ mdadm

เนื่องจากเครื่องเสมือนของผมเคยติดตั้ง Guest OS มาก่อน ตัวติดตั้งจึงตรวจพบมัน ผมลบพาร์ติชันของ OS เดิมในเมนูถัดไปที่ปรากฏขึ้น:

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

สามารถลบพาร์ติชันได้โดยคลิก Delete all จากนั้นคลิก Reclaim space เพื่ออัปเดตขนาดพื้นที่ดิสก์ที่ว่าง

รายการแพ็กเกจสำหรับการติดตั้งเลือกได้ใน Software Selection หากจะใช้ CentOS 8 เป็นเซิร์ฟเวอร์ เลือก Minimal Install พร้อมกับ Standard และ Guest Agents (หากติดตั้ง Guest OS บน VM) ก็เพียงพอ

หลังจากนั้นคลิก Begin Installation เพื่อเริ่มติดตั้ง

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

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

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

คลิก Root Password ป้อนรหัสผ่านและยืนยัน แล้วคลิก Done เพื่อกลับสู่การติดตั้ง:

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

การติดตั้ง CentOS 8 ใช้เวลาประมาณ 5-7 นาที เมื่อเห็นปุ่ม Reboot บนหน้าจอติดตั้ง แสดงว่าติดตั้งเสร็จแล้ว ต้องรีสตาร์ทเซิร์ฟเวอร์

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ดังนั้น การติดตั้ง CentOS 8 จบสิ้นสุด

การกำหนดค่าพื้นฐาน CentOS 8 หลังการติดตั้ง

การกำหนดค่าพื้นฐาน CentOS 8 หลังติดตั้ง คล้าย CentOS 7 มาก ผมตั้งค่าพื้นฐานเดียวกันบนเซิร์ฟเวอร์ทุกเครื่อง

ติดตั้งอัปเดตและเครื่องมือผู้ดูแลระบบบน CentOS

ตามที่กล่าวไว้ dnf แทนที่ yum ใน CentOS 8

Dnf คือรุ่นต่อไปของ YUM แอปพลิเคชัน ตัวจัดการแพ็กเกจ RPM สำหรับการกระจาย Linux ก่อนหน้านี้ dnf ใช้ใน Fedora และตอนนี้มาสู่ CentOS 8

สิ่งแรกที่ทำบนเซิร์ฟเวอร์ที่เพิ่งติดตั้งคืออัปเดตระบบ:

# dnf update -y

หาก image เป็นเวอร์ชันล่าสุด อาจไม่มีแพ็กเกจให้อัปเดต เช่นในกรณีของผม:

Dependencies resolved. Nothing to do. Complete!

หากมีอัปเดต ให้ติดตั้ง

ขั้นตอนต่อไป เปิดใช้งานคลัง EPEL และติดตั้งเครื่องมือสำหรับการจัดการเซิร์ฟเวอร์อย่างสะดวก:

# dnf install epel-release -y
# dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

เครื่องมือเหล่านี้เพียงพอสำหรับผม แต่คุณสามารถติดตั้งที่คุ้นเคยได้

ผมไม่ใช้การอัปเดตระบบอัตโนมัติ เนื่องจากติดตั้งอัปเดตที่จำเป็นเอง หากต้องการกำหนดค่าอัปเดตอัตโนมัติ ให้ติดตั้งแพ็กเกจ dnf-automatic:

# dnf install -y dnf-automatic

เพื่อตรวจสอบงานอัปเดตระบบที่ทำงานอยู่ ให้พิมพ์คำสั่ง:

# systemctl list-timers *dnf-*

วิธีปิดใช้งาน SELinux บน CentOS?

ในขั้นตอนตั้งค่าเซิร์ฟเวอร์เบื้องต้น ผมปิด SELinux เสมอ (เพื่อให้การเปลี่ยนแปลงมีผล ต้องรีบูทเซิร์ฟเวอร์):

# nano /etc/sysconfig/selinux
# reboot

สามารถปิด SELinux แบบ on-the-fly ได้ด้วยคำสั่ง:

setenforce 0

การกำหนดค่าการตั้งค่าเครือข่ายบน CentOS 8

เนื่องจากผมตั้งค่าเครือข่ายระหว่างติดตั้ง OS จึงไม่ต้องทำในตอนนี้ (ดูบทความรายละเอียดการตั้งค่าเครือข่ายใน CentOS ได้ที่นี่) ผมเพียงต้องการบอกว่าใน CentOS 8 สามารถจัดการเครือข่ายได้ด้วย Network Manager และ nmcli เท่านั้น Network-scripts ไม่ได้รับการรองรับโดยค่าเริ่มต้น ต้องรับว่าก่อนหน้านี้ผมปิด NM และไม่ใช้ เพราะไม่สะดวก แต่ตอนนี้ต้องเรียนรู้ใช้ให้ได้

วิธีตรวจสอบสถานะเครือข่าย:

# systemctl status NetworkManager

● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-06-29 08:23:11 NY; 3h 37min ago Docs: man:NetworkManager(8) Main PID: 870 (NetworkManager) Tasks: 3 (limit: 5060) Memory: 4.7M CGroup: /system.slice/NetworkManager.service └─870 /usr/sbin/NetworkManager --no-daemon

วิธีเปลี่ยน Hostname บน CentOS 8?

หากไม่ได้ตั้งชื่อโฮสต์เซิร์ฟเวอร์ให้ถูกต้องระหว่างติดตั้ง CentOS หรือต้องการเปลี่ยน สามารถทำได้หลายวิธี แก้ไขในไฟล์ /etc/hostname หรือเปลี่ยนด้วยคำสั่ง:

# hostnamectl set-hostname mycentos8server

กำหนดค่า Firewalld บน CentOS 8

เพิ่มบริการที่ต้องการ (SSH และ HTTP/HTTPS) เข้าไปในโซนที่เชื่อถือได้ใน firewalld:

firewall-cmd –-add-service=ssh
firewall-cmd --permanent –-add-service=http
firewall-cmd --permanent –-add-service=https

การเปลี่ยนเวลาและ TimeZone บน CentOS

เพื่อดูเวลาและ timezone ปัจจุบันบน CentOS ให้พิมพ์คำสั่ง date:

# date

เราตั้ง time-zone ระหว่างติดตั้งระบบ จึงได้เวลา NY หากต้องการเปลี่ยน time-zone ใช้คำสั่ง:

# timedatectl set-timezone America/Toronto

เพื่อแสดงรายการ time zone ทั้งหมด ให้รัน:

# timedatectl list-timezones

เพื่อซิงโครไนซ์เวลา ใช้ chronyd ให้เปิดใช้งานและเพิ่มใน autostart ด้วย systemctl:

# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd

● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-06-29 16:13:48 +06; 9s ago Docs: man:chronyd(8) man:chrony.conf(5) Main PID: 31700 (chronyd) Tasks: 1 (limit: 5060) Memory: 1.1M CGroup: /system.slice/chronyd.service └─31700 /usr/sbin/chronyd 

กำหนดค่า Bash History

เพื่อดูประวัติคำสั่ง bash แบบสะดวกขึ้น ผมเพิ่มบรรทัดใน .bashrc เพื่อให้ได้ข้อมูลเวลาของคำสั่ง

ด้วยการตั้งค่าเริ่มต้น ผลลัพธ์ของ history แสดงแบบนี้:

# history

1 dnf repolist 2 dnf install epel-release 

เห็นได้ว่าทำคำสั่งอะไรบ้าง แต่ไม่เห็นเวลาและวันที่ ซึ่งสำคัญมากสำหรับผม มาทำให้ history สะดวกขึ้น เปิด /root/.bashrc และเพิ่มบรรทัด:

# nano /root/.bashrc

export HISTSIZE=10000
export HISTTIMEFORMAT="%d/%d/%y - %H:%M:%S "

ตอนดู history จะเห็นเวลาและวันที่แน่นอนที่รันคำสั่ง:

# history

1 Jun/06/29 - 16:16:29 dnf repolist 2 Jun/06/29 - 16:16:29 dnf install epel-release 

Cockpit: เว็บอินเตอร์เฟซจัดการเซิร์ฟเวอร์บน CentOS 8

ตามที่กล่าวไว้ CentOS 8 มี cockpit เว็บอินเตอร์เฟซจัดการเซิร์ฟเวอร์ติดตั้งมาพร้อมแล้ว สามารถจัดการผ่าน systemctl ได้ ให้รันและเพิ่มใน startup:

# systemctl enable cockpit.socket
# systemctl start cockpit.socket

โดยค่าเริ่มต้น Cockpit web server ฟังที่ Port TCP/9090 ให้เพิ่มพอร์ตใน firewalld:

# firewall-cmd --get-active-zones
# firewall-cmd --add-port=9090/tcp --zone=MY_ACTIVE_ZONE --permanent
# firewall-cmd --reload

เพื่อเข้าถึง Cockpit web interface ให้เปิด URL: https://Your-CentOS8-IP:9090 ในเบราว์เซอร์และล็อกอิน

CentOS 8: คู่มือการติดตั้งและการกำหนดค่าพื้นฐาน

ผ่าน Cockpit สามารถดูโหลดเซิร์ฟเวอร์ จัดการเครือข่าย สตอเรจ และคอนเทนเนอร์ หรือดู log ได้

การตั้งค่าเซิร์ฟเวอร์ CentOS แบบปกติเสร็จสิ้น แล้วผมมักตั้งค่าเพิ่มเติมตามข้อกำหนดโครงการ ซึ่งอาจแตกต่างกันไป