<返回更多

如何快速上手CentOS8

2019-09-28    
加入收藏

作者 | 左国才

出品 | 脚本之家(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
具体可以参考:https://github.com/karelzak/util-linux/ 查看内核

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

  1. uname -r
  2. 4.18.0-80.el8.x86_64
配置网络地址
  1. vi /etc/sysconfig/network-s/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.  
  22.  
  23. systemctl start NetworkManager
  24.  
  25. 查看
  26. nmcli c
  27.  
  28. 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. 浏览器访问
  6. 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.  
  4. vi /etc/profile
  5.  
  6. export GO111MODULE=on
  7. export GOPROXY=https://goproxy.cn
  8.  
  9. source /etc/profile
  10.  
  11. go env

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

  1. systemctl start mysqld
  2.  
  3. [root@pangu ~]# mysql
  4. Welcome to the MySQL monitor. Commands end with ; or g.
  5. Your MySQL connection id is 9
  6. Server version: 8.0.13 Source distribution
  7.  
  8. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  9.  
  10. Oracle is a registered trademark of Oracle Corporation and/or its
  11. affiliates. Other names may be trademarks of their respective
  12. owners.
  13.  
  14. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
  15.  
  16. mysql>

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

  1. dnf install php-pear php-devel make
  2.  
  3. pecl install mcrypt
  4.  
  5.  
  6. vi /etc/php.ini
  7. extension=mcrypt.so
  8.  
  9. 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 相关软件包对比如下:

  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-subions.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. subion-manager-cockpit.noarch 1.24.13-3.el7.centos updates
  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. subion-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.  
  7. chain INPUT {
  8. type filter hook input priority 0; policy accept;
  9. }
  10.  
  11. chain FORWARD {
  12. type filter hook forward priority 0; policy accept;
  13. }
  14.  
  15. chain OUTPUT {
  16. type filter hook output priority 0; policy accept;
  17. }
  18. }

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

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

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>