查看原文
其他

如何快速上手CentOS8

IT服务圈儿 2022-09-11

The following article is from 脚本之家 Author 左国才

IT服务圈儿

有温度、有态度的IT自媒体平台


作者 | 左国才

出品 | 脚本之家(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版本
CentOS7util-linux-2.23.2
CentOS8util-linux-2.32.1

具体可以参考:https://github.com/karelzak/util-linux/

查看内核

对内核版本敏感的应用终于可以使用上4.x 的内核了。

  1. uname -r

  2. 4.18.0-80.el8.x86_64

配置网络地址

  1. vi /etc/sysconfig/network-scripts/ifcfg-ens3

  2. TYPE=Ethernet

  3. PROXY_METHOD=none

  4. BROWSER_ONLY=no

  5. BOOTPROTO=static

  6. IPADDR=10.10.10.100

  7. NETMASK=255.255.255.0

  8. GATEWAY=10.10.10.1

  9. DNS1=10.10.10.2

  10. DEFROUTE=yes

  11. IPV4_FAILURE_FATAL=no

  12. IPV6INIT=yes

  13. IPV6_AUTOCONF=yes

  14. IPV6_DEFROUTE=yes

  15. IPV6_FAILURE_FATAL=no

  16. IPV6_ADDR_GEN_MODE=stable-privacy

  17. NAME=ens3

  18. UUID=ad5cf4a5-7881-4533-82fd-b8a0350a7859

  19. DEVICE=ens3

  20. ONBOOT=yes



  21. systemctl start NetworkManager


  22. 查看

  23. nmcli c


  24. ip a s

配置yum /dnf 源

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

  1. [BaseOS]

  2. name=CentOS-$releasever - Base

  3. baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/

  4. gpgcheck=1

  5. enabled=1

  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

vi /etc/yum.repos.d/CentOS-APPStream.repo

  1. [AppStream]

  2. name=CentOS-$releasever - AppStream

  3. baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/

  4. gpgcheck=1

  5. enabled=1

  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficia

vi /etc/yum.repos.d/CentOS-Extras.repo

  1. [extras]

  2. name=CentOS-$releasever - Extras

  3. baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/

  4. gpgcheck=1

  5. enabled=1

  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

关闭selinux firewlld

  1. setenforce 0

  2. systemctl stop firewalld

安装命令行补全插件

  1. yum install bash-completion

  2. source /etc/profile

安装web console

  1. dnf install cockpit

  2. systemctl start cockpit

  3. ss -tan|grep 9090


  4. 浏览器访问

  5. https://10.10.10.100:9090/

常用软件包安装

对开发者更好的工具支持,php,golang,maven,nodejs 等耳熟能详的开发工具链 终于可以用原生yum源安装了,不再需要通过第三方yum源,即使像rust,cargo 都很好的支持了。

  1. dnf install nodejs

  2. dnf install python2

  3. dnf install python3

  4. dnf install golang

  5. dnf install php

  6. dnf install ruby

  7. dnf install perl

  8. dnf install java-1.8.0

  9. dnf install java-11

  10. dnf install maven

  11. dnf install scala

  12. dnf install cargo

  13. dnf install rust

  14. dnf install clang

  15. dnf install freeradius

  16. dnf install dpdk

  17. dnf install docker

  18. dnf install mysql-server

  19. dnf install podman

这里我们注意到没有pip 这个命令,CentOS8 都是严格区分pip2 和pip3,分别对应包python2-pip和python3-pip

golang 默认安装 ,GOPATH在/root/go下,没有配置go proxy 和也没有开启go module 功能,需要自行配置。

  1. [root@pangu ~]# go version

  2. go version go1.11.5 linux/amd64


  3. vi /etc/profile


  4. export GO111MODULE=on

  5. export GOPROXY=https://goproxy.cn


  6. source /etc/profile


  7. go env

mysql8.0 命令行进入是不需要密码的, 从 mysql 官方安装的话,随机密码会记录到日志,首次登陆也是需要密码的,红帽很贴心,告别首次配置输密码的问题。

  1. systemctl start mysqld


  2. [root@pangu ~]# mysql

  3. Welcome to the MySQL monitor. Commands end with ; or g.

  4. Your MySQL connection id is 9

  5. Server version: 8.0.13 Source distribution


  6. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.


  7. Oracle is a registered trademark of Oracle Corporation and/or its

  8. affiliates. Other names may be trademarks of their respective

  9. owners.


  10. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.


  11. mysql>

php默认是7.2.11版本,加密库 默认使用了libsodium ,如何找到以前的php-mcrypt

  1. dnf install php-pear php-devel make


  2. pecl install mcrypt



  3. vi /etc/php.ini


  4. extension=mcrypt.so


  5. php -m |grep mcrypt

魔性的cockpit

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 安装

  1. dnf install cockpit

  2. dnf install cockpit-machines

  3. systemctl enable --now cockpit.socket

cockpit-docker 在CentOS8 中不支持了

Redhat7.6 引入了Podman。Podman通过提供与Docker命令行类似的功能。我们对比发现 CentOS8 中 cockpit-docker 不见了。可能Redhat 更推荐用自家的podman。CentOS7 和 CentOS8 cockpit 相关软件包对比如下:

  • CentOS7

  1. [root@pangu]# yum list |grep cockpit

  2. cockpit.x86_64 195.1-1.el7.centos.0.1 @extras

  3. cockpit-bridge.x86_64 195.1-1.el7.centos.0.1 @extras

  4. cockpit-kubernetes.x86_64 195.1-1.el7.centos.0.1 @extras

  5. cockpit-machines.noarch 195.1-1.el7.centos.0.1 @extras

  6. cockpit-system.noarch 195.1-1.el7.centos.0.1 @extras

  7. cockpit-ws.x86_64 195.1-1.el7.centos.0.1 @extras

  8. cockpit-composer.noarch 1-1.el7 extras

  9. cockpit-dashboard.x86_64 195.1-1.el7.centos.0.1 extras

  10. cockpit-doc.x86_64 195.1-1.el7.centos.0.1 extras

  11. cockpit-docker.x86_64 195.1-1.el7.centos.0.1 extras

  12. cockpit-machines.x86_64 176-4.el7.centos extras

  13. cockpit-machines-ovirt.noarch 195.1-1.el7.centos.0.1 extras

  14. cockpit-packagekit.x86_64 176-4.el7.centos extras

  15. cockpit-packagekit.noarch 195.1-1.el7.centos.0.1 extras

  16. cockpit-pcp.x86_64 195.1-1.el7.centos.0.1 extras

  17. cockpit-storaged.noarch 195.1-1.el7.centos.0.1 extras

  18. cockpit-subscriptions.noarch 160-1.el7.centos extras

  19. cockpit-tests.x86_64 195.1-1.el7.centos.0.1 extras

  20. cockpit-ws.i686 195.1-1.el7.centos base

  21. subscription-manager-cockpit.noarch 1.24.13-3.el7.centos updates

  • CentOS8

  1. [root@pangu ~]# dnf list |grep cockpit

  2. cockpit.x86_64 185.1-1.el8_0 @BaseOS

  3. cockpit-bridge.x86_64 185.1-1.el8_0 @BaseOS

  4. cockpit-packagekit.noarch 184.1-1.el8 @AppStream

  5. cockpit-system.noarch 185.1-1.el8_0 @BaseOS

  6. cockpit-ws.x86_64 185.1-1.el8_0 @BaseOS

  7. cockpit.i686 185.1-1.el8_0 BaseOS

  8. cockpit-bridge.i686 185.1-1.el8_0 BaseOS

  9. cockpit-composer.noarch 0.1.8-1.el8 AppStream

  10. cockpit-dashboard.noarch 184.1-1.el8 AppStream

  11. cockpit-doc.noarch 185.1-1.el8_0 BaseOS

  12. cockpit-machines.noarch 184.1-1.el8 AppStream

  13. cockpit-pcp.x86_64 184.1-1.el8 AppStream

  14. cockpit-session-recording.noarch 1-29.el8 AppStream

  15. cockpit-storaged.noarch 184.1-1.el8 AppStream

  16. cockpit-ws.i686 185.1-1.el8_0 BaseOS

  17. subscription-manager-cockpit.noarch 1.23.8-35.el8 BaseOS

firewalld 守护使用 nftables 作为默认后端

nftables 框架替换了 iptables 默认网络数据包过滤工具,可以通过nft 命令可编程式的配置防火墙。

查看规则

  1. [root@pangu ~]# nft list table filter

  2. table ip filter {

  3. set blackhole {

  4. type ipv4_addr

  5. }


  6. chain INPUT {

  7. type filter hook input priority 0; policy accept;

  8. }


  9. chain FORWARD {

  10. type filter hook forward priority 0; policy accept;

  11. }


  12. chain OUTPUT {

  13. type filter hook output priority 0; policy accept;

  14. }

  15. }

nft -i 打开交互配置模式,具体用法可以参考nftables官方文档 https://wiki.nftables.org/wiki-nftables/index.php/Simplerulemanagement

本文作者:左国才,VIPKID运维工程师,笔名icai,主要研究开源Linux操作系统,数据库,云计算领域相关技术,平时喜欢阅读脚本之家公众号。

声明:本文为 脚本之家专栏作者 投稿,未经允许请勿转载。




*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存