作者 | 左國才
出品 | 腳本之家(ID:jb51net)
如有好文章投稿,請點擊 → 這里了解詳情
centos8 9月底發布,引入了不少新的功能和操作習慣,我們如果快速上手呢?首先我們從三個疑問說起三個疑問:
1.Minimal 版本 哪去了?我們下載 CentOS7 是區分 Minimal, Everything的。Minimal 只有792M ,非常便于快速傳輸和安裝。而CentOS8-1905 Minimal, Everything 合并為一個ISO文件,共6.64G, 比原來變胖了。具體可以參考https://wiki.centos.org/Download,CentOS-8-Stream 則更大,7.98G,包含的東西更多。不過安裝時也不用擔心整個安裝過程變長,在安裝過程中在SOFTWARE SELECTION 中可以選擇 Minimal Install ,如圖1。
2. network.service 不能用了,如果配置網絡?NetworkManager 勝出,取代了network.service 。以后就沒有機會執行 systemtl stop network 了。NetworkManager有自己的CLI工具:nmcli,可以手動配置網絡,也可以把參數添加到配置文件,跟之前一樣,直接啟動服務。
3. tailf 哪去了?tailf 來源于util-linux包,我們從util-linux作者源碼的發行說明中Documentation/releases/v2.30-ReleaseNotes 找到了如下說明 The deprecated command tailf has been removed. Use "tail -f" from coreutils. 也就是說從2.30 移除了tailf,以后只能使用tail -f 命令。
CentOS7和CentOS8 包版本對比
系統版本 | util-linux版本 |
---|---|
CentOS7 | util-linux-2.23.2 |
CentOS8 | util-linux-2.32.1 |
對內核版本敏感的應用終于可以使用上4.x 的內核了。
- uname -r
- 4.18.0-80.el8.x86_64
- vi /etc/sysconfig/network-s/ifcfg-ens3
- TYPE=Ethernet
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=static
- IPADDR=10.10.10.100
- NETMASK=255.255.255.0
- GATEWAY=10.10.10.1
- DNS1=10.10.10.2
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=ens3
- UUID=ad5cf4a5-7881-4533-82fd-b8a0350a7859
- DEVICE=ens3
- ONBOOT=yes
- systemctl start NetworkManager
- 查看
- nmcli c
- ip a s
dnf 是從fedora中 移植過來的,與yum 操作習慣很類似,也支持只下載不安裝的功能,只需要在參數中指定 --downloadonly,依然支持epeldnf install epel-release,AppStream 是對傳統 rpm 格式的全新擴展,為一個組件同時提供多個主要版本,比如Python2和python3,JAVA-1.8.0和java-11,配置國內yum源進行加速
vi /etc/yum.repos.d/CentOS-Base.repo
- [BaseoS]
- name=CentOS-$releasever - Base
- baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
vi /etc/yum.repos.d/CentOS-APPStream.repo
- [AppStream]
- name=CentOS-$releasever - AppStream
- baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficia
vi /etc/yum.repos.d/CentOS-Extras.repo
- [extras]
- name=CentOS-$releasever - Extras
- baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
- setenforce 0
- systemctl stop firewalld
- yum install bash-completion
- source /etc/profile
- dnf install cockpit
- systemctl start cockpit
- ss -tan|grep 9090
- 瀏覽器訪問
- https://10.10.10.100:9090/
對開發者更好的工具支持,php,golang,maven,nodejs 等耳熟能詳的開發工具鏈 終于可以用原生yum源安裝了,不再需要通過第三方yum源,即使像rust,cargo 都很好的支持了。
- dnf install nodejs
- dnf install python2
- dnf install python3
- dnf install golang
- dnf install php
- dnf install ruby
- dnf install perl
- dnf install java-1.8.0
- dnf install java-11
- dnf install maven
- dnf install scala
- dnf install cargo
- dnf install rust
- dnf install clang
- dnf install freeradius
- dnf install dpdk
- dnf install Docker
- dnf install MySQL-server
- dnf install podman
這里我們注意到沒有pip 這個命令,CentOS8 都是嚴格區分pip2 和pip3,分別對應包python2-pip和python3-pip
golang 默認安裝 ,GOPATH在/root/go下,沒有配置go proxy 和也沒有開啟go module 功能,需要自行配置。
- [root@pangu ~]# go version
- go version go1.11.5 linux/amd64
- vi /etc/profile
- export GO111MODULE=on
- export GOPROXY=https://goproxy.cn
- source /etc/profile
- go env
mysql8.0 命令行進入是不需要密碼的, 從 mysql 官方安裝的話,隨機密碼會記錄到日志,首次登陸也是需要密碼的,紅帽很貼心,告別首次配置輸密碼的問題。
- systemctl start mysqld
- [root@pangu ~]# mysql
- Welcome to the MySQL monitor. Commands end with ; or g.
- Your MySQL connection id is 9
- Server version: 8.0.13 Source distribution
- Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
- mysql>
php默認是7.2.11版本,加密庫 默認使用了libsodium ,如何找到以前的php-mcrypt
- dnf install php-pear php-devel make
- pecl install mcrypt
- vi /etc/php.ini
- extension=mcrypt.so
- php -m |grep mcrypt
cockpit是一個開源項目,不僅僅CenOS8 可以使用。ubuntu 和CentOS7 也是可以使用的。具體可以參考https://cockpit-project.org/,CentOS 8 把 cockpit 從擴展yum源 移動到基礎yum 源里了,可見對cockpit的期望很高。
那cockpit可以做什么呢
1). 支持web終端,在web中關閉防火墻,selinux, 如圖2
2). 支持虛擬機管理,需要安裝cockpit-machines 如圖3
3). 支持docker管理,需要安裝cockpit-docker
4). 支持k8s dashboard管理,需要安裝 cockpit-kubernetes
5). 支持web界面配置網卡bond,如圖4
等等
cockpit 安裝
- dnf install cockpit
- dnf install cockpit-machines
- systemctl enable --now cockpit.socket
cockpit-docker 在CentOS8 中不支持了
Redhat7.6 引入了Podman。Podman通過提供與Docker命令行類似的功能。我們對比發現 CentOS8 中 cockpit-docker 不見了。可能Redhat 更推薦用自家的podman。CentOS7 和 CentOS8 cockpit 相關軟件包對比如下:
- CentOS7
- [root@pangu]# yum list |grep cockpit
- cockpit.x86_64 195.1-1.el7.centos.0.1 @extras
- cockpit-bridge.x86_64 195.1-1.el7.centos.0.1 @extras
- cockpit-kubernetes.x86_64 195.1-1.el7.centos.0.1 @extras
- cockpit-machines.noarch 195.1-1.el7.centos.0.1 @extras
- cockpit-system.noarch 195.1-1.el7.centos.0.1 @extras
- cockpit-ws.x86_64 195.1-1.el7.centos.0.1 @extras
- cockpit-composer.noarch 1-1.el7 extras
- cockpit-dashboard.x86_64 195.1-1.el7.centos.0.1 extras
- cockpit-doc.x86_64 195.1-1.el7.centos.0.1 extras
- cockpit-docker.x86_64 195.1-1.el7.centos.0.1 extras
- cockpit-machines.x86_64 176-4.el7.centos extras
- cockpit-machines-ovirt.noarch 195.1-1.el7.centos.0.1 extras
- cockpit-packagekit.x86_64 176-4.el7.centos extras
- cockpit-packagekit.noarch 195.1-1.el7.centos.0.1 extras
- cockpit-pcp.x86_64 195.1-1.el7.centos.0.1 extras
- cockpit-storaged.noarch 195.1-1.el7.centos.0.1 extras
- cockpit-subions.noarch 160-1.el7.centos extras
- cockpit-tests.x86_64 195.1-1.el7.centos.0.1 extras
- cockpit-ws.i686 195.1-1.el7.centos base
- subion-manager-cockpit.noarch 1.24.13-3.el7.centos updates
- CentOS8
- [root@pangu ~]# dnf list |grep cockpit
- cockpit.x86_64 185.1-1.el8_0 @BaseOS
- cockpit-bridge.x86_64 185.1-1.el8_0 @BaseOS
- cockpit-packagekit.noarch 184.1-1.el8 @AppStream
- cockpit-system.noarch 185.1-1.el8_0 @BaseOS
- cockpit-ws.x86_64 185.1-1.el8_0 @BaseOS
- cockpit.i686 185.1-1.el8_0 BaseOS
- cockpit-bridge.i686 185.1-1.el8_0 BaseOS
- cockpit-composer.noarch 0.1.8-1.el8 AppStream
- cockpit-dashboard.noarch 184.1-1.el8 AppStream
- cockpit-doc.noarch 185.1-1.el8_0 BaseOS
- cockpit-machines.noarch 184.1-1.el8 AppStream
- cockpit-pcp.x86_64 184.1-1.el8 AppStream
- cockpit-session-recording.noarch 1-29.el8 AppStream
- cockpit-storaged.noarch 184.1-1.el8 AppStream
- cockpit-ws.i686 185.1-1.el8_0 BaseOS
- subion-manager-cockpit.noarch 1.23.8-35.el8 BaseOS
nftables 框架替換了 iptables 默認網絡數據包過濾工具,可以通過nft 命令可編程式的配置防火墻。
查看規則
- [root@pangu ~]# nft list table filter
- table ip filter {
- set blackhole {
- type ipv4_addr
- }
- chain INPUT {
- type filter hook input priority 0; policy accept;
- }
- chain FORWARD {
- type filter hook forward priority 0; policy accept;
- }
- chain OUTPUT {
- type filter hook output priority 0; policy accept;
- }
- }
nft -i 打開交互配置模式,具體用法可以參考nftables官方文檔 https://wiki.nftables.org/wiki-nftables/index.php/Simplerulemanagement
本文作者:左國才,VIPKID運維工程師,筆名icai,主要研究開源Linux操作系統,數據庫,云計算領域相關技術,平時喜歡閱讀腳本之家公眾號。