Read the Docs 在线文档搭建教程(一)

Linux36

原文链接:https://www.zhoubotong.site/post/76.html
最近发现一个文档类网站,编写教程很合适,特地查了一下叫Read the Docs ,可以使用 Sphinx 生成文档,GitHub 托管文档,然后导入到 ReadtheDocs进行展示,这里顺便记录一下搭建过程。

环境:Sphinx + Read the Docs + 宝塔 + Github

无论是管理技术文档、写书、写笔记,亦或想搭建一个属于你的个人知识库,都是一个不错的选择。废话不多说,进入下面正题吧!

1. 背景知识

1.1 Read the Docs

Read the Docs 是一个基于 Sphinx 的免费文档托管项目。该项目在 2010 年由 Eric Holscher、Bobby Grace 和 Charles Leifer 共同发起。2011年3月,Python 软件基金会曾给 Read the Docs 项目资助 840 美元,作为一年的服务器托管费用。此后,受到越来越多开源社区和开发者的关注。

Read the Docs 在线文档搭建教程(一)

Read the Docs 网站:https://readthedocs.org/

1.2 Sphinx

Read the Docs 在线文档搭建教程(一)

Sphinx是一个基于Python的用于创建文档的工具。它最早只是用来生成 Python 的项目文档,使用 reStructuredText 格式。但随着 Sphinx 项目的逐渐完善,目前已发展成为一个大众可用的框架,很多非 Python 的项目也采用 Sphinx 作为文档写作工具,甚至完全可以用 Sphinx 来写书。具有以下特征:

  • 输出格式:HTML(包括Windows HTML Help),LaTeX(用于打印的PDF版本),ePub,Texinfo, 手册页,纯文本;
  • 强大的交叉引用:语义标记和对函数、类、引用、术语表和类似信息的自动链接功能;
  • 层次结构:简单的文本树定义,并能自动链接同级、父级和子级;
  • 自动索引:一般索引以及语言特定模块索引;
  • 代码处理:利用Pygments实现代码高亮;
  • 开放的扩展:支持代码块的自动测试,并包含Python模块的自述文档(API docs)等。

Sphinx使用reStructuredText作为标记语言,它的优势来自于reStructuredText语言的强大和直接,及其解析和翻译套件Docutils1.3 reStructuredText

reStructuredText 是一种轻量级标记语言。它是 Python Doc-SIG(Documentation Special Interest Group)的 Docutils 项目的一部分,旨在为 Python 创建一组类似于 Java 的 Javadoc 或 Perl 的 Plain Old Documentation(pod)的工具。Docutils 可以从 Python 程序中提取注释和信息,并将它们格式化为各种形式的程序文档。

值得注意的是,reStructuredText 是一个单词,不是两个,也不是三个。可以简写为 RST、ReST 或 reST,作为一种用于文本数据的文件格式,通常采用 .rst 作为文件后缀。

Read the Docs 在线文档搭建教程(一)

前面提到,Sphinx 使用 reST 作为标记语言。实际上,reST 与 Markdown 非常相似,都是轻量级标记语言。由于设计初衷不同,reST 的语法更为复杂一些。

Markdown 的目标很简单,就是为了更简单地写 HTML,完成 text-to-HTML 的任务。而 reST 的目标是,建立一套标准文本结构化格式用以将文档转化为有用的数据格式(简单来说,就是要实现一套简单、直观、明确、原文本可阅读的,且可以转化为其他格式的文档标记语言)。显然,reST 的目标更大一些。

2. 环境搭建

所有操作系统均可使用,此处我以 Uos为例。

确保系统中已安装 git、make、python3、python3-pip:

sudo apt-get install git
sudo apt-get install make
sudo apt-get install python3
sudo apt-get install python3-pip

然后安装 Sphinx 及相关依赖,对于已经安装有Python3的系统(我装的是Python 3.7.3),可以直接使用pip3安装Sphinx:

pip3 install sphinx sphinx-autobuild

安装完成后,系统会增加一些 sphinx- 开头的命令。

sphinx-apidoc sphinx-autobuild sphinx-autogen sphinx-build sphinx-quickstart

完成安装之后,可以在命令窗口输入sphinx-build -h来查看sphinx的版本号和该指令的其他控制参数。

Read the Docs 在线文档搭建教程(一)

3. 快速开始

3.1 创建项目

我们以建立 wiki 文档系统为例,先创建并进入 wiki 文件夹(后续所有操作都在该uos系统wiki文件夹内)。

执行 sphinx-quickstart 构建项目框架,将会出现如下对话窗口。

Read the Docs 在线文档搭建教程(一)

首先,询问你是否要创建独立的源文件和构建目录。实际上对应两种目录结构,一种是在根路径下创建"_build"目录,

另一种是在根路径下创建"source"和"build"两个独立的目录,前者用于存放文档资源,后者用于保存构建生成的各种文件。根据个人喜好选择即可,比如我更倾向于独立目录,因此输入 y。

接着,需要输入项目名称、作者等信息。

OK,项目创建完成!设置完成后,目录结构如下:

│ make.bat
│ Makefile

├───build
└───source
│ conf.py
│ index.rst

├───_static
└───_templates

  • Makefile:可以看作是一个包含指令的文件,在使用 make 命令时,可以使用这些指令来构建文档输出。
  • build:生成的文件的输出目录。
  • make.bat:Windows 用命令行。
  • _static:静态文件目录,比如图片等。
  • _templates:模板目录。
  • conf.py:存放 Sphinx 的配置,包括在 sphinx-quickstart 时选中的那些值,可以自行定义其他的值。
  • index.rst:文档项目起始文件。

然后我们在 wiki 目录下执行 make html,就会在 build/html 目录生成 html 相关文件,比如配置更新就需要重新make html生成新文件,

还可以使用sphinx-autobuild来自动重载文档,运行下面指令来实现:

sphinx-autobuild . _build/html

Read the Docs 在线文档搭建教程(一)

index.rst文件内容会编译到_build/html目录下。打开_build\html\index.html文件是渲染出来的HTML页面,

默认主题不好看,可以配置其它主题。

3.2 配置 主题

使用 sphinx-quickstart指令将生成包括 conf.py在内的配置文件,以及一份主文档文件 index.rst

conf.py文件包含了该sphinx工程的所有配置选项,包括一些无法在 sphinx-quickstart向导中进行设置的复杂选项。

更加详细的 conf.py配置内容大家可参考The build configuration file

安装sphinx Read the Docs主题

pip3 install sphinx_rtd_theme

更多主题可到官网查看,打开 source/conf.py 文件,找到 html_theme 字段,修改为我们已经安装好的主题 sphinx_rtd_theme

html_theme = 'alabaster'

html_theme = 'sphinx_rtd_theme'

另外一种修改方式可以直接用sed -i命令修改:

sed -i s/alabaster/sphinx_rtd_theme/g source/conf.py # 等同于上面直接修改了主题

在添加2行(下面两行按需修改,我的值修改了html_theme参数)
vim source/conf.py
import sphinx_rtd_theme
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]

修改完成后执行 make html重新生成页面,现在静态文件全路径是在wiki/build/html/下,
打开_build\html\index.html文件,可以发现主题配置成功,为了方便演示,因为本章所介绍的ReadTheDocs搭建是在UOS系统完成,
本机用的win10,为了方便演示,在uos环境系统下的wiki目录执行:

uos@uos-PC:/media/uos/G/web$ cd wiki
uos@uos-PC:/media/uos/G/web/wiki$ python3 -m http.server 9000
Serving HTTP on 0.0.0.0 port 9000 (http://0.0.0.0:9000/) ...

打开_build\html\index.html文件,可以发现主题配置成功。
Read the Docs 在线文档搭建教程(一)
Read the Docs 在线文档搭建教程(一)
html目录就是文档框架的站点目录,大家可以用nginx或者宝塔配置域名映射到html目录,到这里大家可能会问如何更新新增的页面?很简单:

接下来我们编写一个测试页面,添加一篇文章,在source目录下新建ch01.rst,步骤如下:

uos@uos-PC:/media/uos/G/web/wiki$ ls
_build build make.bat Makefile source
uos@uos-PC:/media/uos/G/web/wiki$ mkdir source/article -p
uos@uos-PC:/media/uos/G/web/wiki$ echo "test" >>source/article/ch01.rst
uos@uos-PC:/media/uos/G/web/wiki$ sudo vim source/article/ch01.rst #随便输入一点文章标题

uos@uos-PC:/media/uos/G/web/wiki$ cat source/article/ch01.rst 第一章

这里是正文内容,测试一段输出

下划线要超过文字,否则会报错

请按照我的写法进行操作,后面安装markdown插件可以不使用这种写法

修改source/index.rst如下

Read the Docs 在线文档搭建教程(一)

注意中间的空行,需要对其否则报错,空间为3个空格,切记!!!

切换到Makefile所在的目录下(此处默认的wiki目录),执行make html
Read the Docs 在线文档搭建教程(一)
查看预览效果:
Read the Docs 在线文档搭建教程(一)

3.3 配置 Markdown

Sphinx默认使用 reStructuredText 标记语言,默认不支持markdown写法,需要安装recommonmark插件,
因为已经习惯使用markdown进行文档编辑,下面来配置markdown。

1) 安装recommonmark插件

pip3 install recommonmark

2)安装支持markdown表格的插件

pip3 install sphinx_markdown_tables

如果大家ReadTheDocs的python环境没有sphinx_markdown_tables,在构建时可能报如下错误:

ModuleNotFoundError: No module named 'sphinx_markdown_tables'

解决方案是在docs目录下新建一个requirements.txt文件,写入如下内容:

sphinx-markdown-tables==0.0.15

3)配置source/conf.py 文件

extensions = ['recommonmark','sphinx_markdown_tables'] #注意这里是找到该参数,新增的

在最后一行复制下方配置

from recommonmark.parser import CommonMarkParser
source_parsers = {
'.md': CommonMarkParser,
}
source_suffix = ['.rst', '.md']

比如下面是我的配置:
Read the Docs 在线文档搭建教程(一)
安全起见,执行 make html 检查下是否含有报错。那我们现在编写一个md文件进行测试下:

vim source/article/ch02.md #添加以下内容

readthedoc是什么?

一个在线编辑文档的编辑器
* cnblogs
*

关于作者

var me = {
nickName : "zhoubotong",
site : "[https://www.zhoubotong.site](https://www.zhoubotong.site)"
}

修改source/index.rst:

Read the Docs 在线文档搭建教程(一)

执行make html(Makefile所在的同级目录)
Read the Docs 在线文档搭建教程(一)
预览效果:
Read the Docs 在线文档搭建教程(一)

3.4 插入图片说明

默认不支持外键插入图片,我们只能将图片下载下来或者引用远程地址。

Read the Docs 在线文档搭建教程(一)

到此,关于readthedoc的使用就介绍到这里了啦,后面再介绍如何配合github完成自动更新。

Original: https://www.cnblogs.com/phpper/p/16617573.html
Author: 周伯通之草堂
Title: Read the Docs 在线文档搭建教程(一)



相关阅读1

Title: 【已解决】linux centos7系统磁盘扩容

第一步要手动加硬盘(我的操作是在20G的基础上加了30G)

Read the Docs 在线文档搭建教程(一)

[reliable@hadoop102 ~]$ su root
密码:

查看当前磁盘挂载情况:

[root@hadoop102 reliable]# fdisk -l

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cef83

设备 Boot Start End Blocks Id System

系统目前有的分区:

/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@hadoop102 reliable]# pvcreate /dev/sda
Device /dev/sda excluded by a filter.

选择操作的磁盘:

[root@hadoop102 reliable]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

查看磁盘分区情况:(当前未分区)

命令(输入 m 获取帮助):p

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cef83

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

重新分区:

命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (41943040-104857599,默认为 41943040):41943040
Last 扇区, +扇区 or +size{K,M,G} (41943040-104857599,默认为 104857599):104857599
分区 3 已设置为 Linux 类型,大小设为 30 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cef83

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
/dev/sda3 41943040 104857599 31457280 83 Linux

更改分区id:

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):L

0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16

Hex 代码(输入 L 列出所有代码):8e
已将分区"Linux"的类型更改为"Linux LVM"

命令(输入 m 获取帮助):p

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cef83

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
/dev/sda3 41943040 104857599 31457280 8e Linux LVM

保存退出:

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@hadoop102 reliable]# pvcreate /dev/sda3
Device /dev/sda3 not found.
[root@hadoop102 reliable]# pvcreate /dev/sda3
Device /dev/sda3 not found.
[root@hadoop102 reliable]# reboot
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(hadoop102) at 23:01:54.

Type `help' to learn how to use Xshell prompt.

[d:\~]$

Connecting to 192.168.10.102:22...

Connection established.

To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Oct 10 22:47:45 2021 from 192.168.10.1
[reliable@hadoop102 ~]$ su root
密码:

创建物理卷:

[root@hadoop102 reliable]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.

查看物理卷信息:(vgdisplay也是查看物理卷信息)

[root@hadoop102 reliable]# pvdisplay

Original: https://www.cnblogs.com/rainbow-1/p/15391407.html
Author: 靠谱杨
Title: 【已解决】linux centos7系统磁盘扩容

相关阅读2

Title: Redis阻塞操作实现原理(转)

原文:https://www.jianshu.com/p/xsMzfn

作者:Haiger

最近一位朋友问到:既然Redis是单线程的工作模式,那像 _BLPOP_这样的阻塞操作又是然后实现的呢?

接下来分别从服务端和客户端来阐述这一逻辑的实现原理。

Redis Server:
redis实现了一套事件触发模型,主要处理两种事件:I/O事件(文件事件)和定时事件。而处理它们的就靠一个EventLoop线程。同时redis还提供了丰富的数据结构,今天我们要分析的主要是List数据结构中的阻塞命令。
先来看看BLPOP的源码(做了精简,只看主要的部分,详细的可以看文尾提供的参考链接):
t_list.c

Read the Docs 在线文档搭建教程(一)

Read the Docs 在线文档搭建教程(一)

上面代码表明:如果客户端发来一个blpop key命令,redis先找到对应的key的list,如果list不为空则pop一个数据返回给客户端;如果对应的list不存在或者里面没有数据,就将该key添加到一个blockling_keys的字典中,value就是想订阅该key的client链表。此时对应的client的为block状态,且i/o channel里面没有写入数据。

既然是list数据结构,当然有push数据的操作:
同样是 t_list.c
Read the Docs 在线文档搭建教程(一)

Read the Docs 在线文档搭建教程(一)

上面代码表明:如果客户端发来一个rpush key value命令,先从blocking_keys中查找是否存在对应的key,如果存在就往ready_keys这个链表中添加该key;同时将value插入到对应的list中,并响应客户端。

从上面的分析来看,主要是blocking_keys和ready_keys的作用,那何时才会处理它们呢? 我们知道redis全靠EventLoop来处理所以的I/O事件,我们来看看所以命令的处理入口:
redis.c

Read the Docs 在线文档搭建教程(一)

Read the Docs 在线文档搭建教程(一)

上面代码表明:每次处理完客户端命令后都会遍历ready_keys,并通过blocking_keys找到对应的client,依次将对应list的数据pop出来并响应对应的client;同时检查是否需要再次block。

这样一来整个流程就清晰了。redis就是通过blocking_keys和ready_keys两个数据结构来实现的阻塞操作。但整个阻塞并没有阻塞EventLoop本身,从而实现命令的快速响应。算是一个典型的空间换时间的设计思路。

接下来再看看客户端如何实现一个阻塞的I/O请求。
Client:
这里我们分两种I/O模型来阐述:阻塞I/O(BIO)和非阻塞I/O(NIO)。
BIO,以Jedis为例。
BinaryJedis.java
Read the Docs 在线文档搭建教程(一)

可以看出一个blpop请求会向redis发起两次I/O请求,一次向redis发送BLPOP key命令,一次从对应的链接管道(channel)中读取数据。由于BIO的特性当channel中没有数据时会一直阻塞,直到有新数据为止。这样就实现了客户端的阻塞效果。

注意:

这里的链接是被独享的,不然会有数据干扰。

NIO的实现就稍微复杂一些,这里分两种情况(以netty为例):
不带RquestID的实现方式
伪代码如下:
Read the Docs 在线文档搭建教程(一)

由于NIO的特性read和write是两个I/O事件,要分别等待selector来触发,所以不能像BIO那样连续发起两次I/O操作。再加上没有requesID,当read到数据时无法找到之前对应的发起者,所以这里的链接也必须是独享的,同时由一个只能包含一个元素的阻塞队列LinkedBlockingQueue来实现阻塞的效果。

带RequestID的实现方式
伪代码如下:
Read the Docs 在线文档搭建教程(一)

这里因为reqeust和response数据结构里都有带上了requestId,并且在链接对象上缓存了requestId和响应future的对应关系,因此链接可以不用独享。

到处,整个阻塞的实现原理分析完毕。

参考链接:
带注解的redis源码:
https://github.com/huangz1990/annotated_redis_source/blob/unstable/src/t_list.c https://github.com/huangz1990/annotated_redis_source/blob/unstable/src/redis.c
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
http://blog.csdn.net/historyasamirror/article/details/5778378

Original: https://www.cnblogs.com/ajianbeyourself/p/15650518.html
Author: 奋斗终生
Title: Redis阻塞操作实现原理(转)

相关阅读3

Title: cobbler离线安装

cobbler离线安装

半自动化安装脚本

在可以联网的机器准备

准备离线装机包

# 安装yum-utils
# yum-utils是管理repository及扩展包的工具,包含一系列yum工具,我们需要使用yumdownloader来下载cobbler相关的依赖包
yum install -y yum-utils

使用yumdownlader下载cobbler及相关产品的依赖包

yumdownloader --resolve --destdir=/tmp/offline-cobbler/ cobbler cobbler-web dhcp httpd tftp xinetd pykickstart debmirror

安装createrepo

yum -y install createrepo

创建yum仓库文件

cd /tmp/offline-cobbler/
createrepo .

打包cobbler离线安装文件

cd /tmp
tar -zcvf offline-cobbler.tar.gz offline-cobbler/

我已经打包好的cobbler包,提取码:w3kb

在无网机器中操作

1. 将打包好的cobbler压缩包传入机器

2. 解压offline-cobbler.tar.gz

tar xvf offline-cobbler.tar.gz -C /tmp/

3. 备份现有yum源

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

4. 编写本地yum源

# 挂载本地iso镜像,需要本地yum源不然安装的时候会少依赖
# 先使用u盘传一个iso镜像最好与本机系统版本一致
# 具体挂载位置看你上传的镜像位置,虚拟机操作是/dev/sr0
$ mount /dev/sr0  /mnt

$ vi /etc/yum.repos.d/cobbler.repo
[cobbler]
name=cobbler local repo
baseurl=file:///tmp/offline-cobbler/
gpgcheck=0
enalbed=1

# 本机镜像源
$  vi /etc/yum.repos.d/Centos.repo
[centos]
name=centos
baseurl=file:///mnt/
gpgcheck=0
enalbed=1

5. 生成yum缓存

yum clean all
yum makecache

6. 安装cobbler

# 关闭selinux和防火墙
# -i 直接修改文件
# s 查找替换
# g 完成所有匹配值的替换
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
$ setenforce 0
$ systemctl disable firewalld.service
$ systemctl stop firewalld.service
# 安装cobbler
$ yum install cobbler -y

7. 安装dhcp和httpd

# 移除cobbler yum源之后安装

rm -f /etc/yum.repos.d/cobbler.repo

yum install dhcp httpd -y

8. 启动服务

$ systemctl enable httpd.service tftp.socket cobblerd.service
$ systemctl start httpd.service tftp.socket cobblerd.service

9. 检查cobbler

$ cobbler check

The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.

2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.

3 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:

    https://github.com/cobbler/cobbler/wiki/Selinux

4 : change 'disable' to 'no' in /etc/xinetd.d/tftp

5 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.

6 : enable and start rsyncd.service with systemctl

7 : debmirror package is not installed, it will be required to manage debian deployments and repositories

8 : ksvalidator was not found, install pykickstart

9 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one

10 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

解释:

1、/etc/cobbler/settings中的“server”字段必须设置为localhost以外的地址,否则kickstarting特性将不起作用。其应该是一个可解析的主机名或IP,所有机器都可达的地址。
2、为了使PXE正常工作,必须将/etc/cobbler/settings中的“next_server”字段设置为除127.0.0.1之外的其他字段,并且应该与PXE网络上的引导服务器的IP匹配。
3、SELinux已启用。请查看下面的Wiki页面以确保在您的SELinux环境下cobbler可以正确工作;
4、 在/etc/xinetd.d/tftp文件中将 'disable' 设置为 'no';
Xinetd:即extended internet daemon,是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。Xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
5、一些网络引导加载程序在/var/lib/cobblerZ/loaders中丢失,您可以运行“cobbler get-loaders”来下载它们,如果您只想处理x86/x86_64 网络引导,确保您已经安装了最近的syslinux包,安装后可以忽略此消息。如果希望支持所有体系结构,则此目录中的文件应该包括pxelinux.0(预启动linux引导程序)、menu.c32(显示菜单界面引导程序)、elilo.efi(ELILO 是一种基于 EFI 开发的 boot loader)和yaboot(Macintosh的引导程序)。“cobbler get-loaders”命令是解决这些需求最简单的方法。
6、使用systemctl命令开启rsyncd.service服务(rsync(remote [rɪˈmoʊt] sync 
展开收缩
)是linux系统下的数据镜像备份工具)并设置开机自启 7、debmirror包没有安装,它用来管理Debian系统的部署和存储库 8、ksvalidator (validator [ˈvælədeɪtər]验证器)没有发现,要安装pykickstart 9、新安装的机器的默认密码设置为cobbler,你可以使用"openssl passwd -1 -salt 'random phrase-here' 'your-password-here'"得到新得密码 10、fencing([ˈfensɪŋ] 击剑/(用栅栏、篱笆或围栏)围住) tools 没有找到,它被用来电源管理功能(可选),安装cman或者fence-agents 来使用

按步骤修复即可,基本想搞离线安装的肯定都会接下来的操作,我这边就不写了.

Original: https://www.cnblogs.com/hengjiu/p/16494505.html
Author: 小李叭叭叭
Title: cobbler离线安装