标签: kickstart

CentOS 上的 Kickstart 文件的 %pre 部分中有哪些命令可用?

环境:CentOS 5.5 和 6.4

我要求在安装前分析硬件,以确保我们的客户不会在不合标准的服务器硬件上安装我们的软件。例如,检查内存、磁盘空间、CPU、网卡……那么,我的 ks.cfg 文件中的 %pre 部分似乎是执行此操作的最佳位置???但是,我无法获得像 free to work 这样的命令...。我想找出 %pre 部分中可用的命令,这是在安装开始前执行硬件分析的正确位置吗???。 . 如果 ks.cfg 的 %pre 部分不是执行此操作的好地方,那么在哪里?这是我迄今为止尝试过的,但没有输出:

ks.cfg:

%pre
  (echo "Analyzing Hardware...") >/dev/tty1
  free >/dev/tty1
  free_txt=`free -o`
  (echo "$free_txt") >/dev/tty1
%end
Run Code Online (Sandbox Code Playgroud)

在安装的第一部分,我在屏幕上看到“分析硬件...”,但之后什么都没有.....

linux centos kickstart

8
推荐指数
2
解决办法
2万
查看次数

如何在 Kickstart 期间后台运行 shell 脚本?

我有一个 Red Hat Kickstart 进程,它通过对状态服务器的 POST 请求报告关键点的进度。

这在%preand期间很好%post,但是当它们之间发生实际构建时,这是一个信息黑洞。

我写了一个简单的 shell 片段,报告安装的软件包数量,以粗略地了解进度。我已将以下内容放入%pre

%pre

## various other stuff here, all works fine ##

cat > /tmp/rpm_watcher.sh << EOF_RPM
PREV=-1
while true
do
    COUNT="\$(rpm -qa | wc -l)"
    if [ \${COUNT} -ne \${PREV} ] ; then
        /bin/wget --post-data " ${Hostname} : Package count \${COUNT}" ${builddest}/log
        PREV=\${COUNT}
    fi
    sleep 15
done
EOF_RPM
/bin/sh /tmp/rpm_watcher.sh &
disown -a
%end
Run Code Online (Sandbox Code Playgroud)

但是,当我从%pre上面启动它作为后台任务时,它挂起等待脚本结束 -%pre永远不会完成(如果我杀死生成的脚本%pre完成并且构建正确开始)。

我无法使用,nohup …

linux shell bash kickstart

7
推荐指数
1
解决办法
3185
查看次数

USB 设置为 /dev/sda 而不是 /dev/sdb

我一直在尝试使用 kickstart 文件来指导 Red Hat 安装程序 (RHEL6.5),而无需用户干预。它正确地在 中查找 kickstart 文件/dev/sdb/fs.cfg,但由于 USB 被识别为/dev/sda,它实际上位于/dev/sda/fs.cfg. 我可以手动将安装程序指向这个目的地,但 kickstart 文件的其余部分依赖于让本机硬盘驱动器sda. 我想在不编辑 kickstart 文件的情况下这样做,但这是必要的,我愿意这样做。

有什么方法可以强制内核将 USB 识别为sdb和 HD识别为sda(我假设内核负责混淆,但我不确定)?它选择外部驱动器(USB)sda并强制内部驱动器(HD)sdb.

注意:我的问题与这个非常相似,除了我的 kickstart 文件绝对依赖于 HDsda

这个问题只发生在 RHEL6.5 安装程序上,而不是 RHEL5.X 安装程序上(我没有尝试过任何以前版本的 RHEL6.X)。我真正想知道的是为什么版本之间会发生变化。

rhel usb kickstart system-installation linux-kernel

7
推荐指数
2
解决办法
2万
查看次数

在安装后的 kickstart 中导入 EPEL GPG 密钥

我正在尝试使用Oz创建 CentOS 6.4 虚拟机映像并从 EPEL 安装一些软件包。当它尝试安装 epel-release 包时,出现错误:

Public key for epel-release-6-8.noarch.rpm is not installed
Run Code Online (Sandbox Code Playgroud)

我可以将自定义的 kickstart 文件传递​​给 Oz,因此我的想法是在安装后脚本中导入此密钥。我应该在该%post部分中放入什么以便导入适当的密钥?

作为参考,我的 Oz 模板如下所示:

<template>
    <name>centos-6.4</name>
    <os>
        <name>CentOS-6</name>
        <version>4</version>
        <arch>x86_64</arch>
        <install type='iso'>
            <iso>file:///data/isos/CentOS-6.4-x86_64-bin-DVD1.iso</iso>
        </install>
    </os>
    <description>CentOS 6.4 x86_64</description>
    <repositories>
        <repository name='epel-6'>
            <url>http://download.fedoraproject.org/pub/epel/6/$basearch</url>
            <signed>yes</signed>
        </repository>
    </repositories>
    <packages>
        <package name="epel-release" />
        <package name="cloud-utils" />
        <package name="cloud-init" />
    </packages>
    </commands>
</template>
Run Code Online (Sandbox Code Playgroud)

(我可以关闭对签名包的检查,但我想弄清楚如何在不关闭该检查的情况下执行此操作)。

编辑:这是我的自定义 kickstart 目前的样子:

install
text
key --skip
keyboard us
lang en_US.UTF-8
skipx
network --device eth0 --bootproto dhcp
rootpw %ROOTPW% …
Run Code Online (Sandbox Code Playgroud)

centos kickstart

6
推荐指数
1
解决办法
1万
查看次数

CentOS 上的 Kickstart 中 %pre 和 %post 之间的差异?

我一直在 CentOS 上使用 Kickstart 设置机器,但我不确定kickstart文件的%pre%post部分之间的区别.cfg

预安装脚本的 CentOS 文档指出:

You can add commands to run on the system immediately after the ks.cfg has been parsed.
Run Code Online (Sandbox Code Playgroud)

虽然安装后脚本的部分指出:

You have the option of adding commands to run on the system once the installation is complete. 
Run Code Online (Sandbox Code Playgroud)

在阅读了这个问题之后,我注意到该%pre部分似乎无法以某种方式访问​​文件系统。

我的问题是:

  • CentOS 中的 kickstart 脚本%pre%post部分有什么区别?
  • %pre部分是否与 kickstart 脚本同时运行(解析后)?
  • %pre在 kickstart 脚本部分是否有可用的持久存储?

scripting centos kickstart

6
推荐指数
1
解决办法
8273
查看次数

Kickstart:是否可以在没有挂载点的情况下进行分区?

我想对磁盘进行分区,但不应挂载某些分区,到目前为止我必须遵循以下解决方法:

part /srv/tmp1 --fstype=ext4 --size=1000 --ondisk=sda
Run Code Online (Sandbox Code Playgroud)

然后在安装后脚本的分区是从fstab中除去,/srv/tmp1umount编然后被删除。

我想知道是否有 100% kickstart 解决方案?

rhel kickstart

6
推荐指数
1
解决办法
2328
查看次数

如何在没有 DHCP 服务器的情况下通过网络提供 Kickstart 文件?

我想在两个系统上安装 CentOS 5.5。我有一个 kickstart 文件。

我想使用这个 kickstart 文件在系统上安装 CentOS。我正在阅读fedoraproject.orgRedHat.com提供的说明,但他们建议使用 DHCP 服务器。我现在不想设置 DHCP 服务器,我不能在这个 LAN 上有 DHCP 流量。

如何在不使用 DHCP 分配 IP 并指向文件的情况下通过网络使用此 kickstart 我知道可以通过 HTTP、FTP 或 NFS 使 Kickstart 文件可用。如何将 RedHat 安装程序配置为在网络上拥有 IP 地址并从远程服务器获取 kickstart 文件?

install rhel kickstart

5
推荐指数
1
解决办法
7483
查看次数

如何覆盖 anaconda/kickstart 包排序?

我正在构建一个用于安装 Linux 映像(Oracle Linux,5.8)的可引导 ISO。这是使用带有 kickstart 文件的 anaconda 来选择要加载的包。其中一些软件包在其 %post 部分因依赖问题而失败。

例如,安装完成后在 /root/install.log 中可以看到:

Installing thirdparty-tools-1.00-09.noarch
/var/tmp/rpm-tmp.97891: line 1: ln: command not found
/var/tmp/rpm-tmp.97891: line 2: ln: command not found
/var/tmp/rpm-tmp.97891: line 3: ln: command not found
/var/tmp/rpm-tmp.97891: line 4: ln: command not found
error: %post(thirdparty-tools-1.00-09.noarch) scriptlet failed, exit status 127
Run Code Online (Sandbox Code Playgroud)

我试图找出是否可以控制/覆盖包排序,而无需编辑任何 RPM 来添加依赖项。我一直在浏览 anaconda/kickstart 文档(https://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_3._Package_Selection),并在其他地方广泛搜索,所以我认为答案实际上是“不,你可以”不这样做',这将是一种耻辱。

问题是我试图包含各种第三方RPM,它们不受我的控制并且已经过数字签名。这些包括在 %post 部分中的一些处理。这个处理需要一些标准的Linux 命令,例如'ln'、'touch' 等,这些命令在coreutils 包中提供。第三方包目前不包含对 coreutils 包的依赖,但显然它应该确实如此。Anaconda 使用自己的偏序算法来选择安装这些包的顺序,并且在安装coreutils 包之前安装第三方包。显然,正确的解决方案是让第三方修复这些 RPM;然而,这可能需要太长时间。

我希望它们可能是 kickstart 文件的一些隐藏/未记录的选项,这可能会添加额外的依赖项。理想情况下,我希望能够将这样的内容添加到 %packages 部分: …

rpm kickstart system-installation installer-anaconda

5
推荐指数
1
解决办法
2300
查看次数

为 RHEL/CentOS 自动化 DISA STIG 控件?

我正在部署必须使用国防信息系统局 (DISA) 发布的 Red Hat 6 (v1r2) 安全技术实施指南 (STIG) 配置的系统。 链接到网站

我已经开始开发一个 Kickstart 文件,以根据我通过 Google 找到的其他 KS 文件自动执行许多这些设置。

有没有人有任何建议、其他工具或其他有用的资源?

不需要使用 Kickstart,它似乎是最简单的入门方法。我正在寻找任何资源:Ansible 的剧本、基本的 shell 脚本等。

rhel configuration centos kickstart

5
推荐指数
1
解决办法
2万
查看次数

kickstart 配置中的 Fedora EPEL 存储库镜像列表使用哪个 URL?

我正在编写一个 kickstart 文件来配置 CentOS 7 安装。我想从 Fedora EPEL 存储库安装一些软件包,因此我repo在配置中添加了一个命令。

我无法找到应该用于该--mirrorlist选项的规范 URL。这将在哪里记录?

repo --name=epel --mirrorlist=<which url?>
%packages
# various packages
%end
Run Code Online (Sandbox Code Playgroud)

我没有看到EPEL FAQ中列出任何内容,Fedora 的镜像管理器站点只有一堆人类可读的页面。此外,kickstart 文档没有记录镜像列表必须采用的格式。

fedora centos kickstart repository

5
推荐指数
1
解决办法
2万
查看次数