标签: kickstart

脚本安装与克隆

克隆与脚本安装(使用 Kick-start / Puppet)的缺点是什么?

我阅读了很多亲脚本安装意见,其中由于不断变化的硬件,克隆被认为是不可靠的方法。

在我的情况下,硬件非常统一,因为我们使用相同的供应商,即使它发生变化,调整克隆图像设置(我使用 SystemImager)的努力也不是很困难。

它也快得多,与 20 - 30 分钟的脚本安装(当然没有本地镜像)相比,它需要大约 5 分钟,并且能够捕获很难编写脚本的次要部分(例如 MySQL 数据库保护)。

但是克隆仍然从我读到的内容中得到了很多抨击,所以任何人都可以分享他对此的看法和经验,如果我将我们的部署基础设施更改为脚本安装是否值得?

提前致谢!

installation cloning kickstart puppet

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

kickstart 和 puppet 之间的细微差别

我对 Puppet 配置管理系统感兴趣,但想知道 kick-start 和 Puppet 之间的界限在哪里?

今天我在 kick-start(由 Cobbler 提供支持)中做了很多任务,包括一些自定义分区。

问题是,是否更好地将所有内容(自定义分区和 puppet 包除外)移动到 Puppet 中,以获得更灵活的管理?或者有一些明确的指导方针?

谢谢。

linux kickstart puppet

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

从现有配置创建 kickstart 配置文件

是否有脚本或其他方法可以根据现有服务器的系统状态自动生成 kickstart 配置文件,以便该文件可用于在另一个安装中复制(而不是克隆)系统配置?

我知道 anaconda-ks.cfg 文件存储在 /root 目录中。但该系统自安装以来已经发生了很大的变化,并且该文件现在没有用处。

scripting linux replication kickstart automated-install

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

将在 kickstart 安装期间执行的所有命令记录到文件和屏幕中

我正在使用以下 kickstart 安装后日志记录选项:

%post  
exec < /dev/tty3 > /dev/tty3  
chvt 3  
echo  
echo "################################"  
echo "# Running Post Configuration #"  
echo "################################"  
(  
  echo 'Hello, World!'  
  cat > test_file <<EOF  
  Hello World  
  EOF  
) 2>&1 | /usr/bin/tee /var/log/post_install.log  
chvt 1  
Run Code Online (Sandbox Code Playgroud)

问题是我实际上并没有在我的日志文件中捕获用于创建 test_file(以 cat 开头并以 EOF 结尾的代码)的命令。echo 语句在那里,但仅此而已。

下面的代码解决了这个问题,但意味着我必须在我所有的安装后过程中附加一个 tee 语句,这并不令人满意。

echo -e "# Writing test_file and capturing to log_file" && /usr/bin/tee -ai log_file >> test_file << EOF  
Hello World  
EOF  
Run Code Online (Sandbox Code Playgroud)

创建的当前日志文件仅捕获还不够的 echo 语句。我想捕获执行的命令及其相关选项和参数。

logging kickstart options

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

优化 RHEL/CentOS kickstart 工作流程的技巧

我在一个由位于多个数据中心和办公地点的 CentOS 系统组成的环境中工作。我一直在使用带有可靠安装后脚本的合理启动,但希望简化和扩展该过程。我们有自己的 yum 存储库,我可以控制使用的硬件范围(通常是HP ProLiant 硬件或 VMWare),假设我每周构建或重新部署一台服务器。按照硬件准备所需步骤,我开始安装操作系统。我现在遇到的问题是:

1)。将系统引导到网络安装程序的好方法。我一直在使用 CentOS 发行版中可用的 10mb boot.iso/netinstall.iso。我通过 VMWare vCenter(用于 VM)或 HP ILO(通常通过 SSH,指向 ISO 的 URL)安装它以启动安装。大多数情况下我无法使用 PXE,因为数据中心位置没有可用的 DHCP。例如,有没有一种干净的方法可以将 boot.iso 放到 USB 密钥上?

2)。有时我需要为 kickstart 设置一个静态 IP。除了boot:在安装程序提示符下在命令行中输入信息之外,是否有更好的方法来输入该信息?

3)。自定义 kickstart 的好方法。现在,我拥有了大部分我需要的东西,但有时需要更改分区方案以适应不同的 RAID 设置(例如两个 SmartArray 控制器)。现在,我基本上是为每个系统(或系统组)设置创建一个单独的 kickstart 文件。我最终得到一个充满旧 *.cfg 文件的目录。我知道有一种更优雅的方式来做到这一点。也许是 PHP?

4)。帮助安装方法。按原样,从提示到完成的完整构建需要 5-10 分钟。我注意到安装方法很重要,具体取决于位置。HTTP 在 yum 服务器本地运行良好,但在我们与其他站点的高带宽低延迟连接上表现不佳。NFS 在这些情况下效果更好。我很感激在 kickstart 过程之前用于预加载设置或系统参数的任何漂亮技巧。

5)。安装后脚本运行良好。它拉出额外的包,设置一些初始设置,修剪服务列表并填充一些用户/密码/SSH 密钥。我想让这个环境通过适当的配置管理运行(我已经习惯了CFEngine,但认为PuppetBcfg2现在可能是更好的选择)。我是否削减了安装后脚本并将这些功能移到 CFEngine 中?不过,这可能是一个不同的问题。

这是我一直在使用的 kickstart 文件的一个示例:

install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs …
Run Code Online (Sandbox Code Playgroud)

scripting linux kickstart centos configuration-management

6
推荐指数
2
解决办法
3597
查看次数

安装在 kickstart 文件中指定的 yum 存储库

现在,我正在通过repo指令指定要用于在 kickstart 文件中安装的存储库。然后,我重新指定要添加到/etc/yum.repos.d安装后的那些存储库。

有没有一种优雅的方法来避免信息重复?它已经咬过我一次。

澄清:

也许我理解不正确,但是:该repo指令似乎仅用于指定 anaconda 用于安装的存储库。它实际上并没有在服务器上安装 repo。我的这个假设基于我在 kickstart 安装方面的经验。

这就是我在安装后再次安装存储库的原因。我想知道是否有更好的方法,这样我就不必在repo指令和安装后脚本中指定存储库。

linux redhat kickstart yum

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

Kickstart SSH 使用

我有一个小的 Kickstart 脚本(除其他外)连接到我们的 Puppet master,批准证书请求,然后为新服务器创建一个基本框架。

在我的 Kickstart 帖子部分,我有以下命令。

# Run the setup script.
exec < /dev/tty6 > /dev/tty6 2>&1
chvt 6
wget http://enoch/ks/setup.sh -O /root/setup.sh
chmod +x /root/setup.sh
bash /root/setup.sh
# And go back to Anaconda
chvt 1 
exec < /dev/tty1 > /dev/tty1 2>&1
Run Code Online (Sandbox Code Playgroud)

在 setup.sh 我有这条线

ssh -t $USERNAME@puppetmaster auto_client.sh $HOSTNAME
Run Code Online (Sandbox Code Playgroud)

这在从命令行调用时非常有效,但是当我从 Kickstart 菜单运行它时,我的 SSH 窗口在原始终端下打开并破坏了脚本的其余部分。我该如何纠正?

linux terminal kickstart

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

KVM 上的 CentOS Kickstart 不清除分区标签

我使用带有命令的 kickstart 文件clearpart --all --initlabel来确保 anaconda 在尝试创建和格式化新分区之前清除所有磁盘。

这在过去对我有用,在物理机器上。但是,在使用底层 LVM 卷作为存储的 KVM 来宾上执行此操作时,Anaconda 会在出现以下警告时等待用户输入:

错误截图

我自己来回答这个问题。我错误地认为我的问题和解决方案与ServerFault 上的这个问题有关。由于它们不是,我正在创建并回答一个新问题。

lvm kickstart centos kvm-virtualization

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

CentOS/Redhat kickstart 脚本 cdrom 挂载点

尝试将一些文件从我的自定义 CentOS 7 安装 ISO 复制到 部分中的新安装%post

我已经尝试了所有这些:

cp /dev/cdrom/scripts/myscript.sh /etc/myscripts/myscript.sh
cp /dev/cdrom:/scripts/myscript.sh /etc/myscripts/myscript.sh
cp /mnt/sysimage/root/scripts/myscript.sh /etc/myscripts/myscript.sh
cp /scripts/myscript.sh /etc/myscripts/myscript.sh
Run Code Online (Sandbox Code Playgroud)

但没有一个人最终myscript.sh进入/etc/myscripts

安装在哪里挂载光盘?

更新

我试过了:

%post --nochroot

#!/bin/sh

set -x -v

cp -r /run/install/repo/scripts/myscript.sh /mnt/sysimage/etc/httpd/conf/myscript.sh
Run Code Online (Sandbox Code Playgroud)

这导致安装无法启动(只是挂在飞溅上)

更新 2

简单地做:

%post --nochroot

cp -r /run/install/repo/scripts/myscritp.sh /mnt/sysimage/etc/myscritp.sh

%end
Run Code Online (Sandbox Code Playgroud)

工作并且文件从安装媒体isolinux/scripts目录复制到/etc安装目标文件系统上的目录。

linux redhat kickstart centos

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

Kickstart 中的 CentOS/RHEL 7 LVM 分区?

我正在尝试更多地了解 Linux 中的分区,特别是 LVM 分区。因此,我一直在查看有关此的许多来源,各种示例,但似乎没有一个对此进行更详细的介绍,因此我希望获得一些见解以更好地理解。

  1. 阅读RHEL 7 指南。它列出了xfs、ext4、ext3、ext2、vfat、swap、bios boot、bios boot with efi的可用文件系统。此处的 kickstart 语法部分引用了此部分(ctrl+f for --fstype)。在许多示例中,我注意到人们--fstype="lvmpv"在制作 LVM 物理卷时使用, 。这样做的目的是什么?如果我想为 做一个分区,不包括 fstype 之/var类的命令会不会part pv.4 \var...自动创建一个 LVM 物理卷?我只是觉得奇怪的是它被用作文件系统类型,但没有在文件系统部分中定义为有效值。

  2. 上述问题的第二部分与pv.id部分有关,我是否正确理解 id 可以是任何数字?有什么理由我不应该自动给我的每个物理卷编号 1,2,3,4..?我注意到在一些指南中人们pv.18pv.11. 举个例子,这里的

linux partition lvm kickstart gparted

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