Ubuntu

DevOpssystem

# 一、Ubuntu18.04安装

# 获取iso

Ubuntu18.04阿里云开源镜像 (opens new window)

# 安装

选中安装Ubuntu

默认选中该项,下一步

网卡(NAT)

默认使用ens33虚拟网卡

无代理地址,下一步

镜像

修改镜像为阿里云镜像地址

http://mirrors.aliyun.com/ubuntu/
1

​ 注意:不要拼写错误!!!

磁盘

选择 +LVM,磁盘可扩容

设置文件存储

将ubuntu-lv 的空间设置为100%;初始值为20%

改为18.996

配置用户ubuntu

密码设置为123456

安装SSH

# 二、初始化配置

# 【虚拟机中】ubuntu

​ 登录之后,查看ip

ifconfig
1

查看系统版本

lsb_release -a
1

#查看ssh状态(该版本在安装时已安装了ssh插件)

ps -e |grep ssh
1

# 【Xshell】ubuntu

若正常则使用Xshell连接工具进行登录ubuntu用户

# 配置root密码

sudo passwd root
1

先输入Ubuntu密码

root

root

切换root账户

su
1

# 配置远程连接

进行修改配置文件,用于开启root远程登录

vi /etc/ssh/sshd\_config
1

添加

PermitRootLogin yes
1

重启ssh

service ssh restart
1

之后使用root账户进行重新登录Xshelll

# 【Xshell】root

更新apt软件包列表

apt-get update
1

# 关闭交换空间

​ 交换空间简单说就是当内存不够时,充当内存使用,防止系统不死机。

​ 虚拟化技术,防止资源浪费,一般 不使用交换空间。

(kubernetes直接说明不能开启交换空间,不然会报错)

查看交换空间

free -h
1

更新apt软件包列表

apt-get update
1

避免开机启动交换空间,注释掉/etc/fstab中的swap

vi /etc/fstab
1

注释掉/swap.img

# 关闭防火墙

ufw disable,防火墙在系统启动时自动禁用

ufw disable
1

查看防火墙状态:

ufw status
1

启用防火墙

ufw enable
1

# 设置时区

查看当前时间状态

timedatectl status
1

设置上海时区

timedatectl set-timezone "Asia/Shanghai"
1

查看

date
1

# 修改主机名

查看当前 Hostname

查看当前主机名

hostnamectl
1

修改 Hostname

使用 hostnamectl 命令修改,其中 kubernetes-master 为新的主机名

hostnamectl set-hostname myname
1

配置 hosts

cat >> /etc/hosts << EOF
192.168.0.130 myname
EOF
1
2
3

# 修改 cloud.cfg

​ 如果 cloud-init package 安装了,需要修改 cloud.cfg 文件。该软件包通常缺省安装用于处理 cloud

如果有该文件,进行修改

vi /etc/cloud/cloud.cfg
1

preserve_hostname该配置默认为 false,修改为 true 即可

# 修改 DNS

vi /etc/systemd/resolved.conf
1

把 DNS 取消注释,

添加 DNS=114.114.114.114,保存退出,

# 设置固定****IP

查看自己虚拟机网关

ip route show
1

# 查看配置文件

cd /etc/netplan
ll
vi 50-cloud-init.yaml
1
2
3

删除所有信息

:set paste
i
1
2

粘贴内容如下:

network:
    ethernets:
        ens33:
            addresses: [192.168.106.240/24]
            gateway4: 192.168.106.2
            nameservers:
                addresses: [192.168.106.2]
    version: 2
1
2
3
4
5
6
7
8

注意:该ip网段前提是

使配置生效

netplan apply
1

# 备份镜像

重启后重新连接Xshell

reboot
1

查看主机名及ip等配置信息无误后,再关机备份!

shutdown -h now
1

上述配置之后,将该虚拟机进行备份为最小初始化系统

# 克隆

后续在该镜像基础上进行修改主机名和IP即可快速使用。

修改主机名

hostnamectl set-hostname kubernetes-master
1

修改IP

cd /etc/netplan

vi 50-cloud-init.yaml
1
2
3

使配置生效

netplan apply
1

# 三、Ubuntu常用命令

# 关闭防火墙

# 防火墙在系统启动时自动禁用
ufw disable

# 查看防火墙状态: 
ufw status
1
2
3
4
5

# 查看系统版本

lsb_release -a
1

注意: Codename 为 bionic,该名称为Ubuntu 系统的名称。

# 查看内存空间

free -h

# 表示每三秒,刷新一次查询
free -h -s 3 
1
2
3
4

# 修改主机名

在同一局域网中主机名不应该相同,所以我们需要做修改,下列操作步骤为修改 18.04 版本的 Hostname。

如果是 16.04 或以下版本则直接修改 /etc/hostname 里的名称即可。

查看当前 Hostname

查看当前主机名

hostnamectl
1

修改 Hostname

使用 hostnamectl 命令修改,其中 kubernetes-master 为新的主机名

hostnamectl set-hostname myname
1

# 更正日期时间

国产云服务器不用设置,出厂已设置为北京时间~!

使用 date -R 查看时区是否正确

date -R
1

修改时区

timedatectl set-timezone Asia/Shanghai
1

# 安装 ntpdate

apt-get install ntpdate
1

# 设置系统时间与网络时间同步(cn.pool.ntp.org 位于中国的公共 NTP 服务器)

ntpdate cn.pool.ntp.org
1

# 将系统时间写入硬件时间

hwclock --systohc
1

确认时间

date
1

# 查看并修改DNS

# 临时更改DNS设置
vi /etc/resolv.conf

# 修改如下:
nameserver 114.114.114.114
nameserver 8.8.8.8
1
2
3
4
5
6

# 创建用户

# 创建新用户

sudo useradd -r -m -s /bin/bash kim
1
  • -r:建立系统账号

  • -m:自动建立用户的登入目录

  • -s:指定用户登入后所使用的shell

设置密码

sudo passwd kim
1

输入ls /home/,可以看到用户目录被成功创建了:

ls /home/
1

修改密码

sudo passwd 账户名
1

输入新密码2次即可修改账户密码。

# 修改用户权限

把新建的账号增加到管理员组。这里采用修改Ubuntu 18.04系统/etc/sudoers文件的方法分配用户权限。因为此文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限。

chmod +w /etc/sudoers

vim /etc/sudoers
1
2
3

添加下图的配置语句,并且保存修改

再去掉该文件的权限

chmod -w /etc/sudoers
1

至此,新用户创建成功,并且用户目录被创建,权限也分配成功。

# 切换用户

su - kim
1

# 删除用户

1、执行userdel命令:

sudo userdel kim
1

2、删除用户目录命令:

sudo rm -rf /home/kim
1

3、删除用户权限相关配置:删除或者注释掉/etc/sudoers中关于要删除用户的配置,否则无法再次创建同名用户。

# 远程控制管理

# 概述

​ 传统的网络服务程序,FTP、POP、telnet 本质上都是不安全的,因为它们在网络上通过明文传送口令和数据,这些数据非常容易被截获。SSH 叫做 Secure Shell。通过 SSH,可以把传输数据进行加密,预防攻击,传输的数据进行了压缩,可以加快传输速度。

# OpenSSH

​ SSH 是芬兰一家公司开发。但是受到版权和加密算法限制,现在很多人都使用 OpenSSH。OpenSSH 是 SSH 的替代软件,免费。

OpenSSH 由客户端和服务端组成。

• 基于口令的安全验证:知道服务器的帐号密码即可远程登录,口令和数据在传输过程中都会被加密。

• 基于密钥的安全验证:此时需要在创建一对密钥,把公有密钥放到远程服务器上自己的宿主目录中,而私有密钥则由自己保存。

# 安装

检查软件是否安装

apt-cache policy openssh-client openssh-server
1

安装服务端

apt-get install ope
1

安装客户端

apt-get install openssh-client
1

修改配置文件,添加开启root远程连接

vi /etc/ssh/sshd\_config

PermitRootLogin yes
1
2
3

​ OpenSSH 服务器的主要配置文件为 /etc/ssh/sshd_config,几乎所有的配置信息都在此文件中。

重启ssh

service ssh restart
1

# 软件包管理

# 概述

​ APT(Advanced Packaging Tool) 是 Debian/Ubuntu 类 Linux 系统中的软件包管理程序, 使用它可以找到想要的软件包, 而且安装、卸载、更新都很简便;也可以用来对 Ubuntu 进行升级; APT 的源文件为 /etc/apt/ 目录下的 sources.list 文件。

# 修改数据源

由于国内的网络环境问题,我们需要将 Ubuntu 的数据源修改为国内数据源,操作步骤如下:

编辑数据源

vi /etc/apt/sources.list
1

将原本数据源替换为阿里云镜像

http://mirrors.aliyun.com/ubuntu/
1

(注意系统版本)

更新数据源

apt-get update
1

# 常用 APT 命令

# 安装软件包
apt-get install packagename
# 删除软件包
apt-get remove packagename
# 更新软件包列表
apt-get update
# 升级有可用更新的系统(慎用)
apt-get upgrade
1
2
3
4
5
6
7
8

# # 其它 APT 命令

# 搜索
apt-cache search package
# 获取包信息
apt-cache show package
# 删除包及配置文件
apt-get remove package --purge
# 了解使用依赖
apt-cache depends package
# 查看被哪些包依赖
apt-cache rdepends package
# 安装相关的编译环境
apt-get build-dep package
# 下载源代码
apt-get source package
# 清理无用的包
apt-get clean && apt-get autoclean
# 检查是否有损坏的依赖
apt-get check
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 四、安装程序

# 安装JDK

# 安装openjdk

1、更新软件包列表:

sudo apt-get update
1

2、安装openjdk-8-jdk:

sudo apt-get install openjdk-8-jdk
1

3、查看java版本,看看是否安装成功:

java -version
1

# 安装JDK8

下载

JDK下载地址 (opens new window)

解压缩并移动到指定目录

tar -zxvf jdk-8u152-linux-x64.tar.gz
mkdir -p /usr/local/java
mv jdk1.8.0_152/ /usr/local/java/
chown -R root:root /usr/local/java/1
1
2
3
4

配置环境变量

配置系统环境变量

nano /etc/environmen
1

添加如下语句

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
1
2
3

修改后使用 Ctrl+X,

提示:save modified buffer ...? ,选择 :yes

又提示:file name to write :***.launch ,选择:Ctrl+T

在下一个界面用 “上下左右” 按键 选择要保存的文件名,

然后直接点击 “Enter” 按键即可保存。

配置用户环境变量

nano /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
1
2
3
4

使用户环境变量生效

source /etc/profile
1

测试是否安装成功

java -version
1

# 安装Maven

去官网下载

maven下载 (opens new window)

上传并进行解压

tar -zxvf apache-maven-3.6.3-bin.tar.gz
mkdir -p /usr/local/maven
mv apache-maven-3.6.3 /usr/local/maven/
cd /usr/local/maven/
vi /etc/profile
1
2
3
4
5

添加

export M2_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=${M2_HOME}/bin:$PATH
1
2

使修改的配置立刻生效

source /etc/profile
# 查看maven版本
mvn -v
1
2
3

# 五、使用Docker

# 安装Docker

Ubuntu 16.04 + 上的 Docker CE 默认使用 overlay2 存储层驱动,无需手动配置。

# 使用APT安装

# 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 安装 GPG 证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 更新并安装 Docker CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
1
2
3
4
5
6
7
8
9
10

​ 以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新或者测试版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker。

# 启动Docker CE

sudo systemctl enable docker
sudo systemctl start docker
docker version
1
2
3

# 建立docker用户组[可选]

​ 默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。

​ 因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

# 建立 docker 组:
sudo groupadd docker
# 将当前用户加入 docker 组:
sudo usermod -aG docker $USER
1
2
3
4

退出当前终端并重新登录,进行如下测试。

docker info
1

Docker 镜像加速器

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。

Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

Docker 官方提供的中国 registry mirror

https://registry.docker-cn.com (opens new window)

阿里云加速器

http://mirrors.aliyun.com (opens new window)

我们以 Docker 官方加速器为例进行介绍。

Ubuntu 16.04+、Debian 8+、CentOS 7

​ 对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

vi /etc/docker/daemon.json
1

添加如下内容:

{
  "registry-mirrors": [
    "https://zy2rj443.mirror.aliyuncs.com"
  ]
}
1
2
3
4
5

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

sudo systemctl daemon-reload
sudo systemctl restart docker
# 查看docker信息
docker info
1
2
3
4

# 安装docker-compose

# 二进制包安装

​ 在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。

例如,在 Linux 64 位系统上直接下载对应的二进制包。

sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
1

等待一段时间。。。

# 赋予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看版本
docker-compose version
1
2
3
4

# 卸载[可选]

如果是二进制包方式安装的,删除二进制文件即可。

sudo rm /usr/local/bin/docker-compose
1

# 六、其他

# 忘记密码

当Ubuntu系统在忘记密码的情况下,如何进入系统并更改Root密码。

步骤:

  1. 按住Shift键,重启服务器,即可进入GRUB模式;
  2. 选择第二个选项Advanced options for Ubuntu,随后Enter进入下一步;
  3. 选择第二个选项,结尾带(recovery mode)的,随后按E键进入编辑模式;
  4. 找到ro recovery nomodeset dis_ucode-ldr,并将该段内容替换为quiet splash rw init=/bin/bash,随后按F10即可进入修改密码模式。
  5. 先输入passwd命令,触发更改密码;
  6. 然后依次输入2次密码,即可修改密码;
  7. 直接按Ctrl+Alt+Del重启服务器,使用新密码进行登录系统。

# 修改密码

  1. 输入passwd命令并按下Enter键。

  2. 输入新的root密码并再次确认,然后按下Enter键。

如果操作成功,将会收到密码更新成功的提示。