shell脚本之全自动化部署PXE

#!/bin/bash

#2017-07-21 by max

#config pxe

#config yum

if [ ! -d ~/yum.bak ];

then

mv /etc/yum.repos.d/* ~/yum.bak

else

mkdir ~/yum.bak

mv /etc/yum.repos.d/* ~/yum.bak

fi

cat >/etc/yum.repos.d/server.repo<< EOF

[base]

name=server

baseurl=file:///mnt

gnabled=1

gpgcheck=0

EOF

mount /dev/cdrom /mnt

yum clean all

yum -y update

#config ftp

yum -y install vsftpd

systemctl restart vsftpd ; systemctl enable vsftpd

#config tftp

yum -y install tftp tftp-server xinetd

sed ‘13s/\/var\/lib/ /‘ /etc/xinetd.d/tftp -i

sed ‘14s/yes/no/‘ /etc/xinetd.d/tftp -i

#config network

cat >/etc/sysconfig/network-scripts/ifcfg-eno16777736<<EOF

TYPE=Ethernet

BOOTPROTO=static

NAME=eno16777736

DEVICE=eno16777736

ONBOOT=yes

NETMASK=255.255.255.0

IPADDR=192.168.25.1

EOF

systemctl restart network

#config dhcp

yum -y install dhcp

if [ -f /etc/dhcp/dhcpd.conf.bak ];

then

rm -rf /etc/dhcp/dhcpd.conf.bak

fi

cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

rm -rf /etc/dhcp/dhcpd.conf

cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

cat >>/etc/dhcp/dhcpd.conf<<EOF

subnet 192.168.25.0 netmask 255.255.255.0 {

range 192.168.25.100 192.168.25.200;

next-server 192.168.25.1;

filename "pxelinux.0";

}

EOF

systemctl restart dhcpd ;systemctl enable dhcpd

#config kickstart

if [ ! -d /tftpboot/ ];

then

mkdir /tftpboot/

else

rm -rf /tftpboot/*

fi

mkdir /tftpboot/pxelinux.cfg -p

yum -y install syslinux

cp /usr/share/syslinux/pxelinux.0 /tftpboot/

cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

cp /mnt/images/pxeboot/initrd.img /tftpboot/

cp /mnt/images/pxeboot/vmlinuz /tftpboot/

chmod 644 /tftpboot/pxelinux.cfg/default

#config boot ‘default‘

sed ‘1s/.*/default linux/‘ /tftpboot/pxelinux.cfg/default -i

sed ‘64s/.*/append initrd=initrd.img ks=ftp:\/\/192.168.25.1\/ks.cfg/‘ /tftpboot/pxelinux.cfg/default -i

sed ‘68d‘ /tftpboot/pxelinux.cfg/default -i

sed ‘63 imenu default‘ /tftpboot/pxelinux.cfg/default -i

cat >/var/ftp/ks.cfg<<EOF

#platform=x86, AMD64, 或 Intel EM64T

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard ‘us‘

# Root password

rootpw --iscrypted $1$syci/OCt$KHzs273jZFiTzcp92eGxJ0

# System timezone

timezone Africa/Abidjan

# Use network installation

url --url="ftp://192.168.25.1/pub"

# System language

lang en_US

# Firewall configuration

firewall --disabled

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# SELinux configuration

selinux --enforcing

# Network information

network  --bootproto=dhcp --device=eno16777736 --onboot=yes

# Reboot after installation

reboot

# System bootloader configuration

bootloader --location=mbr --md5pass="$1$wLuI.AZb$sO8s4dCMYHZ7rRDIhRC95."

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part / --fstype="xfs" --size=20480

part swap --fstype="swap" --size=2048

%packages

@base

@core

@desktop-debugging

@dial-up

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@multimedia

@print-client

@x11

%end

EOF

#config srouce and server

umount /dev/cdrom

mount /dev/cdrom /var/ftp/pub

iptables -F

setenforce 0

systemctl stop firewalld

systemctl restart dhcpd

systemctl restart vsftpd

systemctl restart xinetd

时间: 2024-08-08 16:56:44

shell脚本之全自动化部署PXE的相关文章

通过shell脚本实现代码自动化部署

一.传统部署方式及优缺点 1.传统部署方式 (1)纯手工scp (2)纯手工登录git pull.svn update (3)纯手工xftp往上拉 (4)开发给打一个压缩包,rz上去:解压 2.缺点 (1)全程运维参与,占用大量时间 (2)上线速度慢 (3)人为失误多,管理混乱 (4)回滚慢,不及时 二.环境规划 1.开发环境--开发者本地有自己的环境. 运维需要设置的开发环境,大家共用的服务. 2.测试环境:功能测试环境和性能测试环境. 3.预生产环境:生产环境集群中的某一个节点. 4.生产环

Linux LTMP手动编译安装以及全自动化部署实践

前言 现在很多朋友都了解或者已经在使用LNMP架构,一般可以理解为Linux Shell为CentOS/RadHat/Fedora/Debian/Ubuntu/等平台安装LNMP(Nginx/MySQL/PHP),LNMPA(Nginx/MySQL/PHP/Apache),LAMP(Apache/MySQL/PHP)等类似的开发或生产环境.我自己是从SuSE/Oracle商业化环境走出来的,对于开源的部署方案也是在一点一点摸索,我相信其中也必然包含某些坑爹的配置.这篇文章较为详细的描述了基于LT

centos7.3 kvm虚拟化全自动化部署(金测OK)

环境说明: VMware中的centos7做kvm虚拟化实验必须的设置,否则无法正常使用kvm虚拟化功能: #kvm虚拟化一键安装和启动的脚本(已测OK) #说明:此脚本实现kvm虚拟化平台的一键安装,并且创建一台新的虚拟机vmx0,给vmx0全自动安装系统. 本文是通过脚本在centos7系统中全自动化安装和配置kvm虚拟化平台,并通过脚本创建一台新虚拟机vmx0,并且自动安装centos7系统.本案脚本创建的虚拟机vmx0配置了vnc和console控制功能.本文附带了mininal和gno

shell脚本--lnmp架构-实战部署

 shell脚本实战                                 ----一键部署LNMP架构 LNMP使用shell实战部署,直接上主题,首先需要准备的包文件,我这里命名为zhunbei的文件. zhunbei文件内容: gcc gcc-c++ automake autoconf libtool make openssl openssl-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-d

kickstart+DHCP+NFS+TFTP+PXE 全自动化部署Linux系统

目录 kickstart+DHCP+NFS+TFTP+PXE 安装详细步骤 执行PXE--kickstart 安装需要的设备为 用到的kickstart工具.依赖于X Windows,所以要提前安装好,XWindows及GNOME 并重启系统 修改/etc/inittab配置文件 重启系统 reboot 启动图像化 上传centos7.4.iso 至 /usr/loca/src mkdir -p mnt/cdrom 安装dhcp 创建Apache目录 mkdir -p /var/html/www

Linux Shell脚本之远程自动部署java maven项目

脚本功能: 自动从git上获取java maven项目工程源码,在机器A上build,build完成后,将Class文件和配置文件等上传到机器B,重新启动机器B上的服务以便变更生效. 脚本特点: 1.(与之前的自动部署脚本相比)全新优化了脚本代码,更friendly,结构更紧凑 2.Public header删除了无用或者不好用的有色彩显示函数,并修正了WORKDIR不是绝对路径可能导致的bug 3.修正了域名解析判断是否正常的一个bug,该bug可能导致遇到无法解析后不断尝试解析 4.全新的m

kickstart 全自动化部署安装RHEL 7.0(详细图解版)

一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软

Fastlane带来的全自动化部署

From: Hailong's Blog (格式比专栏的好!) 作为公司的iOS程序员,少不了在发布应用的时候各种等待.标准的手动发布流程是:编译->打包上传->填写应用更新数据->等待iTunesConnect编译->选择版本发布,整个过程大概需要30分钟左右.关键是这个过程就像windows装系统一样,虽然手工参与的不多,但是要一直守在电脑前等着. 程序员这么懒,一定会想办法让他自动化的.后来发现特别懒的Felix Krause · GitHub)写的Fastlane,Fast

shell脚本之全库冷备份

#!/bin/bash backup_dir=/oracle/backup log_file=$ORACLE_BASE/admin/$ORACLE_SID/cold_backup_$ORACLE_SID.log echo "Backuping cold backup..." >$log_file data>>$log_file sqlplus -s / as sysdba <<EOF >>$log_file set pagesize 0 lin