首页
归档
时光轴
推荐
Cloud
图床
导航
Search
1
Deploy OpenStack offline based on Kolla
718 阅读
2
openstact 基础环境安装 (手动版)
679 阅读
3
Mariadb 主从复制&读写分离
631 阅读
4
Typecho 1.2.0 部署
620 阅读
5
FusionCompute8.0 体验
561 阅读
Python
Linux
随笔
mysql
openstack
Search
标签搜索
linux
Pike
python
爬虫
openstack
mysql
Essay
Ansible
docker
Zabbix
kolla
Internet
Redis
1+X
Hyper-V
jenkins
Kickstart
自动化
sh
pxe
Acha
累计撰写
77
篇文章
累计收到
1
条评论
首页
栏目
Python
Linux
随笔
mysql
openstack
页面
归档
时光轴
推荐
Cloud
图床
导航
搜索到
1
篇与
的结果
2023-05-15
Kickstart 自动装机
Kickstart 自动装机 参考: Kickstart Installations :: CentOS Docs Site Kickstart 命令选项 * 示例 #version=DEVEL # System authorization information # 系统 身份验证 auth --enableshadow --passalgo=sha512 # Use CDROM installation media # 使用 光驱 执行安装 cdrom # Use graphical install # 使用 图形化 安装界面 graphical # Run the Setup Agent on first boot # 系统第一次引导时启动 初始化设置 # 设置语言、鼠标、键盘、root 密码、安全级别、时区以及默认网络配置 firstboot --enable --reconfig # 接受最终用户许可证协议 # eula --agreed # 忽略其他盘,指定使用 sda # ignoredisk --only-use=sda # Keyboard layouts # 使用 美式键盘 keyboard --vckeymap=us --xlayouts='us' # System language # 系统 默认语言 lang en_US.UTF-8 # Network information # 网络 信息 # 设置主机名 network --hostname=localhost.localdomain # IP 设置,需指定 device,否则会取消后续所有network指令 # network --bootproto=static --device=ens33 --ip=172.16.1.10 --netmask=255.255.255.0 --gateway=172.16.1.2 --nameserver=8.8.8.8 --ipv6=auto --activate # Root password # root 密码 rootpw --iscrypted $6$CRq8DBBEWuqc6LMC$IsuckHWPV8S3mpq0WfceGChzqA6nNVZZGni5oTgQ/tZisMqOrHlmGHqbZKCZchcmuFEBEF8OVT78qzZTiTrNK. user --name=acha --plaintext --password=q --groups=wheel # System services # 系统 服务 services --enabled="chronyd" # 禁用 firewalld & selinux firewall --disabled selinux --disabled # System timezone # 系统 时间 timezone Asia/Shanghai --utc --ntpservers=ntp.aliyun.com # System bootloader configuration # 启动 引导配置 | grub2-mkpasswd-pbkdf2 设置密码 # bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda --password=grub.pbkdf2.sha512.10000.6CCA5D020DF908F98F2F5DA077E18800D514B85BAAF2376812A62CF772803CB14D0A134DDFFA87E7D6B4509CEA9ADEAFACE98ACCF2028C7830583C51361F1F08.13A6610E8A0FBF7D0CAA7C80B4DEC4C4CC22F8BD8CCC669412A9F028B22F25E38BB8B89879B0A75F60D2D05417E9CCBA057C7AD18A75F8F32D768814B5416208 # Partition clearing information # 清除分区 # --all、清除所有分区、--drives= 指定清除硬盘、--none 不删除任何分区 # clearpart --drives=sda --initlabel # Disk partitioning information # part / --fstype="xfs" --ondisk=sda --size=17407 # part swap --fstype="swap" --ondisk=sda --size=2048 # part /boot --fstype="xfs" --ondisk=sda --size=1024 %include /tmp/part.cfg # 安装完重启 reboot --eject %packages @^minimal chrony %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end %pre #!/bin/sh aa=$(whiptail --title "disk info" --nocancel --menu "Please select a disk device." 15 50 5 $(lsblk | grep -v 'loop\|sr\|zraw' |awk '/^[a-z]/ {printf $1" "$4" "}') 3>&1 1>&2 2>&3 >/dev/console) > /tmp/part.cfg echo "bootloader --append=\" crashkernel=auto\" --location=mbr --boot-drive=$aa --driveorder=$aa --iscrypted --password=grub.pbkdf2.sha512.10000.56A0BDCD566915642A113EA15395992ACB55225783A26E5C1AF7AF101651F60EAE52F869DCEF59A319C8A57EB0EFDD22C6D5D8D1046385C05879699CA0A33D06.2432DEC1D876C30F41C8B307CDEFF2F8D6072FD36D8D68D752F96DD9CD99AE126F2E87FD5C5DF59543391B8DE28F82A73D735BDD8863FD439E9BB2C96EC77A2C" >> /tmp/part.cfg echo "ignoredisk --only-use=$aa" >> /tmp/part.cfg echo "clearpart --drives=$aa --all" >> /tmp/part.cfg echo "part /boot --fstype=xfs --ondisk=$aa --size=1024" >> /tmp/part.cfg echo "part swap --fstype=swap --ondisk=$aa --size=2048" >> /tmp/part.cfg echo "part / --fstype=xfs --ondisk=$aa --grow --maxsize=51200" >> /tmp/part.cfg %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end 用户认证 - auth 设置身份验证选项 --enableshadow 使用 用户密码 --passalgo=sha512 指定 SHA-512 哈希算法 例:auth --enableshadow --passalgo=sha512 - rootpw 设置 root 密码 rootpw [--iscrypted|--plaintext] [--lock] password --iscrypted 创建 加密的密码 --plaintext 纯文本 --lock 锁定 root 帐户 例:rootpw --iscrypted $6$CRq8DBBEWuqc6LMC$IsuckHWPV8S3mpq0WfceGChzqA6nNVZZGni5oTgQ/tZisMqOrHlmGHqbZKCZchcmuFEBEF8OVT78qzZTiTrNK. tip: 生成密码 python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) \ if (pw==getpass.getpass("Confirm: ")) else exit())' - User 在系统上创建新用户 user --name=username [options] --name= 用户名称 --groups= 组名列表 --shell= shell 类型 --iscrypted 创建 加密的密码 --plaintext 纯文本 例: user --name=acha --plaintext --password=q --groups=wheel tip: 生成密码 python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) \ if (pw==getpass.getpass("Confirm: ")) else exit())' 用户设置 - Keyboard 设置 键盘布局 --vckeymap 键映射 --xlayouts 键盘布局 例: keyboard --vckeymap=us --xlayouts='us' - lang 设置 默认语言 --addsupport= 添加对其他语言的支持 例: lang en_US.UTF-8 - timezone 设置 系统时区 timezone timezone [options] --utc 设置 utc 时区 --nontp 不启用 ntp --ntpservers= ntp 服务地址 例: timezone Asia/Shanghai --utc --ntpservers=ntp.aliyun.com 安装 - cdrom CDROM 例: cdrom - url 使用 FTP、HTTP 或 HTTPS 从远程服务器上的安装树进行安装 --url= 安装位置 例; url --url= 服务 - firewall 指定 已安装系统的防火墙配置 firewall --enabled|--disabled device [options] - selinux 设置 已安装系统上 SELinux 的状态 selinux [--disabled|--enforcing|--permissive] - services 修改 将在默认 systemd 目标下运行的默认服务集 services [--disabled=list] [--enabled=list] 引导参数 - firstboot 首次引导系统。启用,则必须安装初始安装包 --enable 启用 --disable 禁用 --reconfig 重新配置 例: firstboot --enable --reconfig - bootloader 指定应如何安装引导加载程序 --append= 指定其他内核参数 --boot-drive= 指定 引导加载程序 写入哪个驱动器 --leavebootorder CentOS 7 添加到引导加载程序 顶部 --driveorder= BIOS 引导顺序中排在第一位 --password= GRUB2 菜单密码 --iscrypted 加密的密码 --timeout= 等待时间 --default= 设置默认引导映像 --disabled 禁用引导加载程序安装 例: bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=$aa --driveorder=$aa --password=3214 tip: 生成 grub2 密码: grub2-mkpasswd-pbkdf2 磁盘 - ignoredisk 忽略指定的磁盘 ignoredisk --drives=drive1,drive2,... - clearpart 在创建新分区之前从系统中删除分区 --all 擦除系统中的所有分区 --drives= 清除分区的驱动器 --initlabel 通过为各自体系结构中已指定用于格式化的所有磁盘 --list= 指定要清除的分区 --linux 擦除所有 Linux 分区 --none 不删除任何分区 例: clearpart --drives=$aa --all - part 创建分区 --size= 设置 分区大小 --grow 自适应大小 --maxsize= 分区设置的最大分区大小 --fstype= 文件系统类型 --ondisk= 在磁盘上创建一个分区 例: part / --fstype=xfs --ondisk=$aa --grow --maxsize=51200 网络 - network 配置目标系统的网络信息 --activate 在安装环境中激活此设备 --bootproto 网络模式 --device= 指定网卡 --ip= IP地址 --netmask= 子网掩码 --gateway= 网关 --nameserver= dns解析 --onboot= 自启 --noipv6 禁用 ipv6 例: network --bootproto=static --device=ens33 --ip=172.16.1.10 --netmask=255.255.255.0 --gateway=172.16.1.2 --nameserver=8.8.8.8 -noipv6 --onboot=yes --activate 状态 - reboot 安装成功完成后重新启动 --eject 尝试在重新启动之前弹出可启动媒体 --kexec 将已安装的系统加载到内存中 例: reboot --eject - shutdown 安装成功完成后关闭系统 例: shutdown - halt 等待用户在重新启动之前按下某个键 例: halt - eula 接受许可协议 --agreed 接受最终用户许可协议 例: eula --agreed 软件包选择 %packages %end 选项 @^ 整个环境 @ 指定组 wget 软件包 - 排除软件包或组 参数 --default 安装默认软件包组 --excludedocs 不要安装软件包中的任何文档 --ignoremissing 忽略安装源中缺少的软件包、组和环境 --instLangs= 指定要安装的语言列表 --multilib 允许在 64 位系统中安装 32 位软件包 预安装脚本 %pre %end 参数 --interpreter= 指定不同的脚本语言 --erroronfail 显示错误并在脚本失败时暂停安装 --log= 将脚本的输出记录到指定的日志文件 例 #!/bin/sh hds="" mymedia="" for file in /proc/ide/h* do mymedia=`cat $file/media` if [ $mymedia == "disk" ] ; then hds="$hds `basename $file`" fi done set $hds numhd=`echo $#` drive1=`echo $hds | cut -d' ' -f1` drive2=`echo $hds | cut -d' ' -f2` #Write out partition scheme based on whether there are 1 or 2 hard drives if [ $numhd == "2" ] ; then #2 drives echo "#partitioning scheme generated in %pre for 2 drives" > /tmp/part-include echo "clearpart --all" >> /tmp/part-include echo "part /boot --fstype xfs --size 75 --ondisk hda" >> /tmp/part-include echo "part / --fstype xfs --size 1 --grow --ondisk hda" >> /tmp/part-include echo "part swap --recommended --ondisk $drive1" >> /tmp/part-include echo "part /home --fstype xfs --size 1 --grow --ondisk hdb" >> /tmp/part-include else #1 drive echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include echo "clearpart --all" >> /tmp/part-include echo "part /boot --fstype xfs --size 75" >> /tmp/part-include echo "part swap --recommended" >> /tmp/part-include echo "part / --fstype xfs --size 2048" >> /tmp/part-include echo "part /home --fstype xfs --size 2048 --grow" >> /tmp/part-include fi 安装后脚本 %post %end 参数 --interpreter= 指定不同的脚本语言 --nochroot 在 chroot 环境之外运行 --erroronfail 显示错误并在脚本失败时暂停安装 --log= 将脚本的输出记录到指定的日志文件中 例 %post --log=/var/log/post.log #!/bin/bash #change net device to ethx #sed -i 's/quiet"/quiet net.ifnames=0 biosdevname=0"/g' /etc/default/grub #grub2-mkconfig -o /boot/grub2/grub.cfg cd /etc/sysconfig/network-scripts before_network_script=$(ls ifcfg-*|grep -v lo|grep -v eth*) net_dev_num=$(ls ifcfg-*|grep -v lo|wc -l) rm -rf $before_network_script for ((i=0;i<$net_dev_num;i++)); do echo "TYPE=Ethernet BOOTPROTO=static DEVICE=eth$i ONBOOT=no DNS1= IPADDR= GATEWAY= NETMASK=" |tee > /etc/sysconfig/network-scripts/ifcfg-eth$i done #add pcadmin to sudoers echo "tmpos ALL=(ALL) ALL" >> /etc/sudoers # add tmpos to group users usermod -a -G users tmpos # kolla systemctl disable postfix systemctl disable NetworkManager systemctl enable docker systemctl enable ntpd.service mkdir -p /etc/systemd/system/docker.service.d tee /etc/systemd/system/docker.service.d/kolla.conf <<'EOF' [Service] MountFlags=shared EOF cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/ cp -r /usr/share/kystack /opt %end Anaconda 配置 设置密码策略 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty 软件包 rpm -qa >> /root/install.log awk '{print $2}' /root/install.log | xargs -i cp /media/Packages/{}.rpm /root/PanIOS/Packages/ yum -y install --downloadonly --downloaddir= [root@localhost data]# cat exp.sh #!/bin/bash cat << EOF <group> <id>$0</id> <name>$0</name> <name xml:lang="en_US">$0</name> <description>$0 packages</description> <default>false</default> <uservisible>false</uservisible> <packagelist> EOF for i in $* ; do echo " <packagereq type="default">$i</packagereq>" done cat << EOF </packagelist> </group> EOF [root@localhost data]# sh exp.sh wget unzip lrzsz tree USEAGE: mv exp.sh [groupid] sh [groupid] [pkg]... 制作镜像 mkisofs -o ../autoinstall_centos_79.iso \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -R -J -v -T ./
2023年05月15日
167 阅读
0 评论
1 点赞