具有较强的动手能力,设备操作能力,以及测试环境的搭建能力,如:PXE、DHCP、Jenkins、Docker等。

    一、什么是PXE?

    PXE是由Intel设计的协议,它可以使计算机通过网络启动 备注
    协议分为client和server两端。
    - [x] client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行(并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行)
    网卡rom:里面固化了网络引导信息,可供网络引导启动,建立无盘工作站必备
    PXE协议的成功运行需要解决以下两个问题:
    - [x] 既然是网络传输,那么计算机在启动时,它的IP地址由谁来配置
    - [x] 通过什么协议下载Linux内核和根文件系统
    通过DHCP Server来给PXE client分配一个IP地址
    在PXE client所在的ROM中,已经存在了TFTP Client
    PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需文件
    工作过程
    - [ ] PXE Client是需要安装Linux的计算机,TFTP Server和DHCP server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下
    - [ ] PXE Client在工作过程中,需要三个二进制文件:bootstrap、Linux内核和Linux根文件系统
    bootstrap文件时可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统

    插眼:

    1. ROM:read-only memory【只读存储器】内存,对电脑来说就是硬盘,对手机来说就是内置存储,对单片机来说就是flash,用于存放操作系统的软件。(把固件烧录进flash,就不能修改了,不能被写入)
    2. RAM:【随机存储器】,就是电脑内存条,用于存放动态数据(也叫运行内存),需要把操作系统从ROM中读取出来,放在RAM中运行

    插眼:

    DHCP Server是用来给DHCP Client动态分配IP地址的协议

    1. DHCP【动态主机配置协议】局域网协议。使用UDP协议工作
    2. DHCP服务器是专门承载和运行DHCP服务,并帮助我们管理IP的专用服务器

    TFTP【简单文件传输协议】,使用UDP协议,适合小型文件传送。只能与远程服务器互相读、写文件。

    二、什么是Docker?

    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化 一个完整的Docker由以下几个部分组成:
    Docker Client客户端
    Docker Daemon守护进程
    Docker Image镜像
    Docker Container容器
    为什么要使用Docker?
    - [x] 容器不需要进行 硬件虚拟及运行完整操作系统等额外开销。
    - [x] Docker的镜像提供除了内核外完整的运行时环境,确保应用运行环境一致性
    Docker有社区版和企业版
    docker到底是什么?
    - [ ] 如果要部署一个django,需要做的事情:python环境下载,安装各种依赖,解决可能存在的冲突。可能还要mysql、redis等等。等我配置好以后,万一要换一台服务器,岂不是更加麻烦
    - [ ] 而docker规定标准的交付软件格式:docker镜像;而在docker中镜像是无法直接运行的(一般来说一个软件的某个具体版本只会打包成一个镜像),为了避免镜像损坏,给镜像增加一个“分身”:容器。如果想使用服务或把应用抛弃了,只需要基于镜像新创建一个容器即可,镜像还放在那里不懂。
    只需要安装docker的服务器,一个dockerfile(装箱清单)和网络。需要python3环境,只需要在dockerfile中加入:from python:3.x即可;需要迁移服务器,直接把dockerfile备份数据拷贝到新服务器。需要作为服务给别人使用,dockerfile是最清晰的部署文档,维护官方镜像即可
    使用docker可以将上面部署的mysql、redis等等应用一次性启动,很清晰

    https://zhuanlan.zhihu.com/p/78295209

    三、什么是jenkins?
    部署项目,jenkins正常安装,启动加载插件

    jenkins是一个基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

    插眼:

    持续集成(CI):频繁地将代码集成到主干之前,必须经过自动化测试,只要有一个测试用例失败,就不能继承。通过持续集成,团队可以快速从一个功能到另外一个功能

    首先,开发人员将代码提交到Git仓库,然后jenkins使用git仓库来拉取git仓库的代码。然后配合JDK、Maven等软件完成代码编译、测试、审查等工作。
    最后jenkins将生成的jar/war推送到测试/生产服务器,供用户使用

    用dockers搭建jenkins实现自动化部署