一鍵安裝cobbler指令碼

2022-03-21 18:34:35 字數 4523 閱讀 8355

#!/bin/bash

## install cobbler(kickstart) tools

for centos-6/7

# created by oceanho([email protected]) at

2017-10-22

## 作業系統髮型主版本

os_release_ver=`sed -r '

s#[a-za-z ]+(5|6|7)\..*#\1#g

' /etc/redhat-release`

## cobbler settings 檔案中的server引數

# auto:表示自動 從 net_bind_device 指定的裝置中獲取

# 也可以手動指定

cobbler_server_ip="

auto"#

# cobbler settings 檔案中的next-server引數

# auto:表示自動 從 net_bind_device 指定的裝置中獲取

# 也可以手動指定

cobbler_next_server_ip="

auto"#

# cobbler 安裝系統可以使用的預設密碼(鹽 / 密碼:123456

)password_salt="

`openssl rand -base64 32`

"default_password_crypted=`openssl passwd -1 -salt "$"

'123456

'` # 123456

## 定義乙個變數,用來表示cobbler涉及到網路引數自動獲取網絡卡裝置名稱

# net_auto_dev="

eth1

"dhcpd_template_geturl="

"dhcpd_bind_net_prefix="

172.16.1

"dhcpd_bind_net_subnet="

172.16.1.0

"dhcpd_bind_net_netmask="

255.255.255.0

"# 顯示幫助

function

help()

case"$1

"in-h|--help|help|-help )

help

exit 0;;

esac

## 處理引數

# 引數格式要求

# key=value,比如 net-auto-dev=eth1

until [ $# -eq 0]do

ifegrep -q "

[a-z-]+=.*

"<<<"$1"

then

k=$(sed -r '

s#([a-z-]+)=.*#\1#g

'<<<"$1"

)v=$(sed -r '

s#[a-z-]+=(.*)#\1#g

'<<<"$1"

)case"$k

"in"cobbler-server-ip")

cobbler_server_ip=$v;;"

cobbler-next-server-ip")

cobbler_next_server_ip=$v;;"

net-auto-dev")

net_auto_dev=$v

;;esac

fishift

done

## 根據傳入的引數,初始化一些必須的引數,比如繫結dhcpd服務的網段位址,cobbler settings配置檔案中涉及到的server的ip位址等引數的初始化

function

init_param()'`

if [ $? -ne 0

]then

echo -e "

\033[31m 獲取網絡卡配置資訊失敗. \033[0m

"return 1fi

str_ip="$"

str_netmask="$"

## 以下的寫法只能支援

8/16/24

子網case $str_netmask in"8

")dhcpd_bind_net_prefix=`egrep -o "

([0-9]+.)

"<<<$str_ip`

dhcpd_bind_net_subnet="

$0.0.0

"dhcpd_bind_net_netmask="

255.0.0.0";;

"16")

dhcpd_bind_net_prefix=`egrep -o "

([0-9]+.)

"<<<$str_ip`

dhcpd_bind_net_subnet="

$0.0

"dhcpd_bind_net_netmask="

255.255.0.0";;

"24")

dhcpd_bind_net_prefix=`egrep -o "

([0-9]+.)

"<<<$str_ip`

dhcpd_bind_net_subnet="$0"

dhcpd_bind_net_netmask="

255.255.255.0";;

esac

if [ "

$cobbler_server_ip

" == "

auto"]

then

cobbler_server_ip=$str_ip

fiif [ "

$cobbler_next_server_ip

" == "

auto"]

then

cobbler_next_server_ip=$str_ipfi}

## yum of epel

# 自動現在cobbler先決條件專案,比如epel源等、

# 說明:如果已經有了epel源,該函式不執行安裝epel源的操作,如果沒有epel源,自動安裝阿里雲的epel源

function

install_pre_require()

.repo

fiecho -e "

\033[32m requires completed. \033[0m"}

function

install_cobbler_softs()

function

fix_missing_packages_for_centos7_epel()

## 配置dhcp服務

# 備份

# 修改配置檔案

sed -i "

s/server: .*/server: $/

" /etc/cobbler/settings

sed -i "

s/next_server: .*/next_server: $/

" /etc/cobbler/settings

sed -i '

s/manage_dhcp: 0/manage_dhcp: 1/

' /etc/cobbler/settings

sed -i '

s/pxe_just_once: 0/pxe_just_once: 1/

' /etc/cobbler/settings # 限制客戶端只能安裝一次系統

sed -ri "

/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'oceanhoasdhakdhakjs' '123456'`\"#

" /etc/cobbler/settings

#sed -i '

s#yes#no#

' /etc/xinetd.d/rsync

sed -i '

s#yes#no#

' /etc/xinetd.d/tftp

}# 程式入口

function

main()

# 執行安裝程式操作

main

apache一鍵安裝指令碼

最近在玩apache,首先安裝apace要配置apr,apr util,pcre,而配置這些基本都是千篇一律。所謂程式設計師的精神就是減少重複性的勞動,下面請看我寫的apache安裝指令碼 這個指令碼我也放到我的github上 bin bash 需要sudo執行 dir pwd 要安裝pcre先要安...

nagios一鍵安裝指令碼

nagios具有非常強大的報警功能。還可以結合pnp實現時時繪製圖形。可以根據自己的需求定義 nagios的腳控型別,可以說監控服務,nagios已經做到了無所不能 下面給出nagios的安裝腳步。後期會慢慢更新如何編寫腳步定義企業nagios監控系統 腳步的安裝包是已經放到 usr local s...

nagios一鍵安裝指令碼

nagios具有非常強大的報警功能。還可以結合pnp實現時時繪製圖形。可以根據自己的需求定義 nagios的腳控型別,可以說監控服務,nagios已經做到了無所不能 下面給出nagios的安裝腳步。後期會慢慢更新如何編寫腳步定義企業nagios監控系統 腳步的安裝包是已經放到 usr local s...