#!/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...