月度归档:2016年02月

CentOS6 安装Webmin

官网:http://www.webmin.cn/download.html
参考:http://spikedighole.blog.163.com/blog/static/176998045201562805435418/

01# uname -a               
02Linux localhost.localdomain 2.6.32-573.18.1.el6.x86_64 #1 SMP Tue Feb 9 22:46:17 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
03# cat /etc/redhat-release
04CentOS release 6.7 (Final)
05# rpm -qa|grep webmin
06webmin-1.780-1.noarch
07 
08 
09# webadmin安装升级会用到perl-Net-SSLeay
10yum -y install perl-Net-SSLeay
12wget http://jaist.dl.sourceforge.net/project/webadmin/webmin/1.780/webmin-1.780-1.noarch.rpm
13rpm -ivh webmin-1.780-1.noarch.rpm
14netstat -ntlp|grep 10000

 

转:使用 /sys 文件系统访问 Linux 内核

sysfs 虚拟文件系统提供了一种比 proc 更为理想的访问内核数据的途径

sysfs 是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。相比于 proc 文件系统,使用 sysfs 导出内核数据的方式更为统一,并且组织的方式更好,它的设计从 proc 中吸取了很多教训。本文就 sysfs 的挂载点 /sys 目录结构、其与 Linux 统一设备模型的关系、常见属性文件的用法等方面对 sysfs 作入门介绍,并且就内核编程方面,以具体的例子来展示如何添加 sysfs 支持。

详见  https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

centos 6 如何动态识别新插入物理磁盘(一) http://afatech.iteye.com/blog/2278379

CentOS 使用lynx更新3322.org DDNS

参考文档:
http://www.pubyun.com/products/dyndns/download/

01# 安装lynx
02# yum install lynx
03 
05HTTP/1.1 200 OK
06Server: nginx
07Date: Tue, 23 Feb 2016 09:12:23 GMT
08Content-Type: text/plain; charset=utf-8
09Connection: close
10Vary: Cookie
11 
12good 16.26.19.26
13#
14#
16HTTP/1.1 200 OK
17Server: nginx
18Date: Tue, 23 Feb 2016 09:14:00 GMT
19Content-Type: text/plain; charset=utf-8
20Connection: close
21Vary: Cookie
22 
23nochg 16.26.19.26

 

CentOS6 安装phpMyAdmin

01# cat /etc/redhat-release
02CentOS release 6.7 (Final)
03# rpm -qa|grep phpMyAdmin
04phpMyAdmin-4.0.10.14-1.el6.noarch
05# rpm -qa|grep mysql-server
06mysql-server-5.1.73-5.el6_6.x86_64
07 
08# 添加epel源
10 
11# 安装相关软件包
12# yum -y install httpd mysql php php-mysql phpmyadmin
13 
14# 修改index文件
15# vi /etc/httpd/conf/httpd.conf
16DirectoryIndex index.php index.html index.html.var
17 
18# 允许远程登录phpMyAdmin
19# vi /etc/httpd/conf.d/phpMyAdmin.conf
20   <IfModule !mod_authz_core.c>
21     # Apache 2.2
22     Order Deny,Allow
23     Deny from All
24     Allow from 1.1.1.2
25     Allow from 127.0.0.1
26     Allow from ::1
27   </IfModule>
28    
29# 重启httpd
30service httpd restart
31 
32# 登录
33http://server_ip/phpmyadmin/

 

golang动态更新CCProxy账号对应的IP

环境:
Windows2008R2系统上安装CCProxy代理,安全起见只允许自己的IP可以使用代理。
由于自己使用的ADSL拨号,IP不固定,每次手动修改太麻烦。
所以使用Golang自动更新CCProxy配置。
大概过程:
1、自己这边使用一个DDNS,域名为 test.allgo.cc
2、使用golang每个1分钟解析一次test.allgo.cc
3、解析结果若同CCProxy配置中的不同,则更新配置
4、重新载入CCProxy配置

 

001package main
002 
003/*
004编译后台运行
005go build -ldflags "-H windowsgui" -o ddns_ccproxy.exe edit_win_ini.go
006 
007goconfig库教程
009*/
010 
011import (
012    "fmt"
013    "github.com/Unknwon/goconfig"
014    "log"
015    "net"
016    "os/exec"
017    "time"
018)
019 
020const (
021    DDNS_STR      = "test.allgo.cc"
022    INI_PATH      = "C:/CCProxy/AccInfo.ini"
023    EXE_PATH      = "C:/CCProxy/CCProxy.exe"
024    TIME_INTERVAL = 60
025)
026 
027var (
028    cfg_ip string
029)
030 
031func main() {
032    cfg, err := goconfig.LoadConfigFile(INI_PATH)
033    if err != nil {
034        log.Fatalf("无法加载配置文件:%s", err)
035    }
036 
037    cfg_ip, err = cfg.GetValue("User001", "IPAddressLow")
038    if err != nil {
039        log.Fatalf("无法获取键值(%s):%s", "IPAddressLow", err)
040    }
041    log.Printf("%s > %s: %s", "User001", "IPAddressLow", cfg_ip)
042 
043    for {
044        now_ip, err := get_cfg_ip()
045        if err != nil {
046            log.Printf("dns无法解析: %s", err)
047        } else {
048            if now_ip != cfg_ip {
049 
050                log.Printf("now_ip ->[%s] , cfg_ip->[%s]", now_ip, cfg_ip)
051 
052                //更新ini文件IP
053                isInsert := cfg.SetValue("User001", "IPAddressLow", now_ip)
054                log.Printf("设置键值 %s 为插入操作:%v", "IPAddressLow", isInsert)
055 
056                isInsert0 := cfg.SetValue("User001", "IPAddressHigh", now_ip)
057                log.Printf("设置键值 %s 为插入操作:%v", "IPAddressHigh", isInsert0)
058 
059                //更新ini文件时间
060                isInsert1 := cfg.SetValue("User001", "DisableDateTime", ntime())
061                log.Printf("设置键值 %s 为插入操作:%v", "DisableDateTime", isInsert1)
062 
063                err := goconfig.SaveConfigFile(cfg, INI_PATH)
064                if err != nil {
065                    log.Fatalf("无法保存配置文件:%s", err)
066                }
067                reload_ccproxy_cfg()
068                err1 := cfg.Reload()
069                if err1 != nil {
070                    log.Fatalf("重新载入ini配置失败:%s", err)
071                }
072                cfg_ip, err = cfg.GetValue("User001", "IPAddressLow")
073                if err != nil {
074                    log.Fatalf("无法获取键值(%s):%s", "IPAddressLow", err)
075                }
076                log.Printf("%s > %s: %s", "User001", "IPAddressLow", cfg_ip)
077            } else {
078                log.Printf("DNS IP not change !")
079            }
080        }
081        time.Sleep(time.Second * TIME_INTERVAL)
082    }
083 
084}
085 
086//解析域名,返回字符串类型IP
087func get_cfg_ip() (ip_str string, err error) {
088    dns_ip, err := net.LookupIP(DDNS_STR)
089    ip_str = iptostr(dns_ip[0])
090    log.Printf("dns resolve : %s", ip_str)
091    return ip_str, err
092}
093 
094//获取当前时间
095func ntime() string {
096    tmpnow := time.Now()
097    return fmt.Sprintf(tmpnow.Format("2006-01-02 15:04:05"))
098}
099 
100//ip类型转字符串类型
101func iptostr(tip net.IP) string {
102    return fmt.Sprintf("%s", tip)
103}
104 
105//重新加载CCProxy配置
106func reload_ccproxy_cfg() {
107    log.Println("Reload CCProxy Config...")
108    argv := []string{"-update"}
109    //fmt.Println(argv)
110    _, err := exec.Command(EXE_PATH, argv...).Output()
111    if err != nil {
112        log.Printf("Reload CCProxy Config Error: %s", err)
113    }
114}

 

vbs系统后台持续检测一个进程是否存在

回答百度知道问题:
http://zhidao.baidu.com/question/713784585787480605

问题:
vbs,系统后台持续检测一个进程是否存在,如:qq.exe。如果存在,倒计时X秒将其关闭,如果不存在,继续后台检测。检测时间间隔可设置。

01Const INTERVA = 5  '检测间隔
02dim ps,ps_str
03Set objShell = createobject("wscript.shell")
04  
05REM 解决CMD黑色闪运行
07host = WScript.FullName
08If LCase(Right(host, 11)) = "wscript.exe" Then
09    objShell.run "cscript """ & WScript.ScriptFullName & chr(34), 0
10    WScript.Quit
11End If
12REM -----------------------------------------------------------------------
13  
14do while true
15    Set ps = objShell.Exec("tasklist")
16    ps_str = ps.Stdout.ReadAll
17    'msgbox ps_str
18    if find_yn(ps_str) then
19        objShell.Popup "5秒后将关闭 QQ !", 5, "Close QQ"
20        Set ps = objShell.Exec("taskkill /F /IM QQ.exe /T"'测试程序
21    end if
22    wscript.sleep 1000 * INTERVA  '检测间隔
23loop
24set ps = nothing
25set objShell = nothing
26  
27  
28Function find_yn(str_s)   '查找进程是否存在,不存在返回0
29    Dim re,ms,m
30    find_yn = 0
31    set re = New RegExp
32    re.Global = True
33    re.MultiLine = True
34    're.Pattern = "^(QQa|QQb|QQ).exe"     '可以检测查看多个进程
35    re.Pattern = "^QQ.exe"  '测试查找进程
36    set ms = re.Execute(str_s)
37    For Each m In ms
38        'msgbox m
39        find_yn = find_yn + 1
40    Next
41End Function

 

kickstart_示例

kickstart 示例

 

001#platform=x86, AMD64, or Intel EM64T
002# System authorization information
003auth  --useshadow  --enablemd5
004# System bootloader configuration
005bootloader --location=mbr
006# Partition clearing information
007clearpart --all --initlabel
008# Use text mode install
009text
010# Firewall configuration
011firewall --enabled --http --ssh --port=123:udp
012# Run the Setup Agent on first boot
013firstboot --disable
014# System keyboard
015keyboard us
016# System language
017lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
018# Use network installation
019url --url=http://192.168.211.50/cblr/links/centos7mini-x86_64
020# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
021repo --name=source-1 --baseurl=http://192.168.211.50/cobbler/ks_mirror/centos7mini-x86_64
022 
023# Network information
024# # Using "new" style networking config, by matching networking information to the physical interface's
025# MAC-address
026# %include /tmp/pre_install_network_config
027 
028network  --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
029# --device=eth0 由于网卡的名字可能是eth0、em1、eno16777736等,--device制定的与目标机器网卡不一致时,会报错无法启动,顾不指定--device
030# network --bootproto=static --ip=192.168.100.52 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=223.5.5.5,223.6.6.6 --onboot=on --ipv6=auto
031# network --bootproto=dhcp --onboot=on --noipv6
032# network --device team0 --activate --bootproto=static --ip=10.34.102.222 --netmask=255.255.255.0 --gateway=10.34.102.254 --nameserver=10.34.39.2 -teamslaves="p3p1'{\"prio\": -10, \"sticky\": true}',p3p2'{\"prio\": 100}'" --teamconfig="{\"runner\": {\"name\": \"activebackup\"}}"
033 
034# Reboot after installation
035reboot
036 
037#Root password
038rootpw --iscrypted $1$allgo$sjkKoGvJXV2AuBNFeHyxP.
039 
040# 加密密码生成
041# 格式 openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'
042# 其中 random-phrase-here 为干扰码
043 
044#add user
045# user --name=<username> [--groups=<list>] [--homedir=<homedir>] [--password=<password>] [--iscrypted] [--shell=<shell>] [--uid=<uid>]
046user --name="centos" --password="$1$allgo$sjkKoGvJXV2AuBNFeHyxP." --iscrypted --uid=1000
047 
048# SELinux configuration
049selinux --disabled
050# Do not configure the X Window System
051skipx
052# System timezone
053# timezone  Asia/Shanghai
054timezone --ntpservers=110.75.186.247,cn.ntp.org.cn Asia/Shanghai
055# --nontp Disable automatic starting of NTP service
056 
057# Install OS instead of upgrade
058install
059# Clear the Master Boot Record
060zerombr
061# Allow anaconda to partition the system as needed
062# autopart
063 
064# CentOS6 不支持xfs
065# part / --asprimary --fstype="ext4" --size=20480
066# part /boot --asprimary --fstype="ext4" --size=512
067# part swap --asprimary --fstype="swap" --size=2048
068# part /data --asprimary --fstype="ext4" --grow --size=1
069 
070 
071# CentOS7 支持xfs
072# part / --asprimary --fstype="xfs" --size=20480
073# part /boot --asprimary --fstype="xfs" --size=512
074# part swap --asprimary --fstype="swap" --size=2048
075# part /data --asprimary --fstype="xfs" --grow --size=1
076 
077# CentOS7 使用LVM分区
078part /boot --fstype="xfs" --size=1024
079part swap --fstype="swap" --size=2048
080part pv.01 --size=1 --grow
081volgroup centos pv.01
082logvol  / --fstype="xfs" --vgname=centos  --size=10240  --name=root
083logvol  /data  --fstype="xfs" --vgname=centos  --size=1  --grow  --name=data
084 
085 
086# %pre部分脚本(系统安装前执行)系统在解析 ks.cfg 文件之后立即运行,而且必须以 %pre 命令开头。注意,你在 %pre 部分可以访问网络;然而,名称服务(name service)在此时还没有被配置,因此只有 IP 地址才能奏效。
087%pre
088set -x -v
089exec 1>/tmp/ks-pre.log 2>&1
090 
091# Once root's homedir is there, copy over the log.
092while : ; do
093    sleep 10
094    if [ -d /mnt/sysimage/root ]; then
095        cp /tmp/ks-pre.log /mnt/sysimage/root/
096        logger "Copied %pre section log to system"
097        break
098    fi
099done &
100 
101 
103# Start pre_install_network_config generated code
104# generic functions to be used later for discovering NICs
105mac_exists() {
106  [ -z "$1" ] && return 1
107 
108  if which ip 2>/dev/null >/dev/null; then
109    ip -o link | grep -i "$1" 2>/dev/null >/dev/null
110    return $?
111  elif which esxcfg-nics 2>/dev/null >/dev/null; then
112    esxcfg-nics -l | grep -i "$1" 2>/dev/null >/dev/null
113    return $?
114  else
115    ifconfig -a | grep -i "$1" 2>/dev/null >/dev/null
116    return $?
117  fi
118}
119get_ifname() {
120  if which ip 2>/dev/null >/dev/null; then
121    IFNAME=$(ip -o link | grep -i "$1" | sed -e 's/^[0-9]*: //' -e 's/:.*//')
122  elif which esxcfg-nics 2>/dev/null >/dev/null; then
123    IFNAME=$(esxcfg-nics -l | grep -i "$1" | cut -d " " -f 1)
124  else
125    IFNAME=$(ifconfig -a | grep -i "$1" | cut -d " " -f 1)
126    if [ -z $IFNAME ]; then
127      IFNAME=$(ifconfig -a | grep -i -B 2 "$1" | sed -n '/flags/s/:.*$//p')
128    fi
129  fi
130}
131 
132# Start of code to match cobbler system interfaces to physical interfaces by their mac addresses
133#  Start eno16777736
134# Configuring eno16777736 (00:0C:29:48:30:63)
135if mac_exists 00:0C:29:48:30:63
136then
137  get_ifname 00:0C:29:48:30:63
138  echo "network --device=$IFNAME --bootproto=static --ip=192.168.211.11 --netmask=255.255.255.0 --gateway=192.168.211.1 --hostname=test.mydomain.com" >> /tmp/pre_install_network_config
139fi
140# End pre_install_network_config generated code
141 
142# Enable installation monitoring
143 
144%end
145 
146# %packages 指令也支持下面的选项:
147# --nobase,不要安装@Base 组.如果想创建一个很小的系统,可以使用这个选项.
148# --resolvedeps,选项已经被取消了.目前依赖关系可以自动地被解析.
149# --ignoredeps,选项已经被取消了.目前依赖关系可以自动地被解析.
150# --ignoremissing,忽略缺少的软件包或软件包组,而不是暂停安装来向用户询问是中止还是继续安装.
151# 例如:%packages --ignoremissing
152%packages --ignoremissing --nobase
153@Core
154vim
155wget
156%end
157 
158# %post部分脚本系统安装后执行, DHCP配置网络没有配置dns服务器
159%post --nochroot
160set -x -v
161exec 1>/mnt/sysimage/root/ks-post-nochroot.log 2>&1
162 
163%end
164 
165%post
166set -x -v
167exec 1>/root/ks-post.log 2>&1
168 
169# Start yum configuration
170# curl "http://192.168.211.50/cblr/svc/op/yum/system/test" --output /etc/yum.repos.d/cobbler-config.repo
171 
172# End yum configuration
173 
174 
175 
176# Start post_install_network_config generated code
177 
178# create a working directory for interface scripts
179mkdir /etc/sysconfig/network-scripts/cobbler
180cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/cobbler/
181 
182# set the gateway in the network configuration file
183grep -v GATEWAY /etc/sysconfig/network > /etc/sysconfig/network.cobbler
184echo "GATEWAY=192.168.211.1" >> /etc/sysconfig/network.cobbler
185rm -f /etc/sysconfig/network
186mv /etc/sysconfig/network.cobbler /etc/sysconfig/network
187 
188# set the hostname in the network configuration file
189grep -v HOSTNAME /etc/sysconfig/network > /etc/sysconfig/network.cobbler
190echo "HOSTNAME=test.mydomain.com" >> /etc/sysconfig/network.cobbler
191rm -f /etc/sysconfig/network
192mv /etc/sysconfig/network.cobbler /etc/sysconfig/network
193 
194# Also set the hostname now, some applications require it
195# (e.g.: if we're connecting to Puppet before a reboot).
196/bin/hostname test.mydomain.com
197 
198# Start configuration for eno16777736
199echo "DEVICE=eno16777736" > /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
200echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
201echo "HWADDR=00:0C:29:48:30:63" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
202IFNAME=$(ip -o link | grep -i '00:0C:29:48:30:63' | sed -e 's/^[0-9]*: //' -e 's/:.*//')
203if [ -f "/etc/modprobe.conf" ] && [ $IFNAME ]; then
204    grep $IFNAME /etc/modprobe.conf | sed "s/$IFNAME/eno16777736/" >> /etc/modprobe.conf.cobbler
205    grep -v $IFNAME /etc/modprobe.conf >> /etc/modprobe.conf.new
206    rm -f /etc/modprobe.conf
207    mv /etc/modprobe.conf.new /etc/modprobe.conf
208fi
209echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
210echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
211echo "IPADDR=192.168.211.11" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
212echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
213# End configuration for eno16777736
214 
215sed -i 's/ONBOOT=yes/ONBOOT=no/g' /etc/sysconfig/network-scripts/ifcfg-eth*
216 
217rm -f /etc/sysconfig/network-scripts/ifcfg-eno16777736
218mv /etc/sysconfig/network-scripts/cobbler/* /etc/sysconfig/network-scripts/
219rm -r /etc/sysconfig/network-scripts/cobbler
220if [ -f "/etc/modprobe.conf" ]; then
221cat /etc/modprobe.conf.cobbler >> /etc/modprobe.conf
222rm -f /etc/modprobe.conf.cobbler
223fi
224# End post_install_network_config generated code
225 
226 
227 
228 
229# Start download cobbler managed config files (if applicable)
230# End download cobbler managed config files (if applicable)
231 
232# Start koan environment setup
233echo "export COBBLER_SERVER=192.168.211.50" > /etc/profile.d/cobbler.sh
234echo "setenv COBBLER_SERVER 192.168.211.50" > /etc/profile.d/cobbler.csh
235# End koan environment setup
236 
237# begin Red Hat management server registration
238# not configured to register to any Red Hat management server (ok)
239# end Red Hat management server registration
240 
241# Begin cobbler registration
242# skipping for system-based installation
243# End cobbler registration
244 
245# Enable post-install boot notification
246 
247# Start final steps
248 
251# End final steps
252%end

 

 

 

CentOS7x64下安装Cobbler

测试中发现,无法导入32位系统镜像,使用32位的CentOS安装Cobbler也不行,目前未解决。

 

001# 安装环境
002# cat /etc/redhat-release
003CentOS Linux release 7.1.1503 (Core)
004 
005# uname -a
006Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
007 
008 
009# cat /etc/redhat-release
010CentOS Linux release 7.1.1503 (Core)
011[root@localhost ~]# uname -a
012Linux localhost.localdomain 3.10.0-229.20.1.el7.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
013 
014# rpm -qa cobbler
015cobbler-2.6.10-1.el7.noarch
016 
017####################################################################################
018#
019#安装过程
020#
021####################################################################################
022# 增加repo源
023rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
024# 或
025wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
026 
027# 安装Cobbler及相关软件
028yum -y install httpd xinetd tftp-server dnsmasq rsync syslinux
029yum -y install cobbler fence-agents pykickstart
030 
031# 关闭selinux
032# vi /etc/selinux/config
033SELINUX=disabled
034 
035# 获取selinux状态
036# getenforce
037 
038# 关闭iptables
039systemctl stop firewalld
040systemctl disable firewalld
041 
042# 生成系统安装后,root的密码 (默认密码为 cobbler)
043# 格式 openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'
044# 其中 random-phrase-here 为干扰码
045 
046# openssl passwd -1 -salt 'allgo' 'allgo.cc'                                
047$1$allgo$sjkKoGvJXV2AuBNFeHyxP.
048 
049# 修改Cobbler配置/etc/cobbler/settings
050manage_dhcp:1
051manage_dns:1
052manage_tftpd:1
053restart_dhcp:1
054restart_dns:1
055next_server:<服务器的 IP 地址>
056server:<服务器的 IP 地址>
057default_password_crypted: "$1$allgo$sjkKoGvJXV2AuBNFeHyxP."
058 
059# 修改 modules,使用dnsmasq作为DHCP、DNS服务器
060# vi /etc/cobbler/modules.conf
061[dns]
062module = manage_dnsmasq
063 
064[dhcp]
065module = manage_dnsmasq
066 
067[tftpd]
068module = manage_in_tftpd
069 
070# 修改dnsmasq配置文件 /etc/dnsmasq.conf
071# vi /etc/dnsmasq.conf
072 
073# Cobbler generated configuration file for dnsmasq
074# $date
075#
076 
077# resolve.conf .. ?
078#no-poll
079#enable-dbus
080read-ethers
081addn-hosts = /var/lib/cobbler/cobbler_hosts
082 
083dhcp-range=192.168.211.10,192.168.211.29,255.255.255.0
084dhcp-ignore=tag:!known
085dhcp-option=3,$next_server
086dhcp-lease-max=1000
087dhcp-authoritative
088dhcp-boot=pxelinux.0
089dhcp-boot=net:normalarch,pxelinux.0
090dhcp-boot=net:ia64,$elilo
091 
092$insert_cobbler_system_definitions
093 
094# TFTP配置
095# cat /etc/xinetd.d/tftp
096# default: off
097# description: The tftp server serves files using the trivial file transfer \
098#       protocol.  The tftp protocol is often used to boot diskless \
099#       workstations, download configuration files to network-aware printers, \
100#       and to start the installation process for some operating systems.
101service tftp
102{
103        socket_type             = dgram
104        protocol                = udp
105        wait                    = yes
106        user                    = root
107        server                  = /usr/sbin/in.tftpd
108        server_args             = -s /var/lib/tftpboot
109        disable                 = no
110        per_source              = 11
111        cps                     = 100 2
112        flags                   = IPv4
113}
114 
115systemctl start xinetd.service
116systemctl status xinetd.service
117systemctl enable xinetd.service
118 
119systemctl start tftp.socket
120systemctl status tftp.socket
121systemctl enable tftp.socket
122 
123systemctl start tftp.service
124systemctl status tftp.service
125systemctl enable tftp.service
126 
127# 配置httpd
128cd /etc/httpd/conf.d/
129#移除并备份conf文件,目的不显示测试页面
130mv autoindex.conf autoindex.conf.bak
131mv userdir.conf userdir.conf.bak
132mv welcome.conf welcome.conf.bak
133 
134 
135# 启动httpd、Cobbler
136systemctl start httpd.service
137systemctl enable httpd.service
138systemctl status httpd.service
139 
140systemctl start cobblerd.service
141systemctl enable cobblerd.service
142systemctl status cobblerd.service
143 
144# Cobbler检查,会检测到一些错误,根据提示解决
145cobbler check
146 
147# Cobbler配置应用
148cobbler sync
149 
150# 查看相关应用是否启动
151ss -naltu
152 
153 
154# 准备安装文件
155# 导入iso文件
156mount -t iso9660 -o loop,ro /os/CentOS-7-x86_64-Minimal-1503-01.iso /mnt
157cobbler import --name=centos7mini --path=/mnt --arch=x86_64
158# cobbler import --arch=x86_64 --path=/mnt --name=centos7mini2
159 
160# 查看导入结果
161cobbler distro list
162cobbler distro report
163cobbler profile report
164 
165# 添加kickstart配置文件
166# 从现有sample_end 修改得到
167# cp /var/lib/cobbler/kickstarts/sample_end.ks /var/lib/cobbler/kickstarts/jxl_data.ks
168# vi /var/lib/cobbler/kickstarts/jxl_data.ks
169timezone Asia/Shanghai --isUtc
170lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
171 
172# 添加账号
173# user --name=<username> [--groups=<list>] [--homedir=<homedir>] [--password=<password>] [--iscrypted] [--shell=<shell>] [--uid=<uid>]
174user --name="centos" --iscrypted="$1$juxinli$PEn5Sl/DCkrLOGeSmVrFP1" --uid=1000
175 
176 
177# Allow anaconda to partition the system as needed
178# autopart
179 
180# Partition clearing information
181clearpart --all --initlabel
182# Disk partitioning information
183part / --asprimary --fstype="xfs" --size=204800
184part /boot --asprimary --fstype="xfs" --size=1024
185part swap --asprimary --fstype="swap" --size=4096
186# kvm
187part /vm --asprimary --fstype="xfs" --grow --size=1
188# data
189part /data --asprimary --fstype="xfs" --grow --size=1
190 
191#LVM-data
192part /boot --fstype="xfs" --size=1024
193part swap --fstype="swap" --size=4096
194part pv.01 --size=1 --grow
195volgroup centos pv.01
196logvol  / --fstype="xfs" --vgname=centos  --size=2048  --name=root
197logvol  /data  --fstype="xfs" --vgname=centos  --size=1  --grow  --name=data
198 
199 
200#LVM-kvm
201part /boot --fstype="xfs" --size=1024
202part swap --fstype="swap" --size=4096
203part pv.01 --size=1 --grow
204volgroup centos pv.01
205logvol  / --fstype="xfs" --vgname=centos  --size=2048  --name=root
206logvol  /vm  --fstype="xfs" --vgname=centos  --size=1  --grow  --name=vm
207 
208 
209 
210 
211 
212 
213 
214# cobbler profile add --name=Fedora17-xfce --ksmeta='desktop_pkg_group=@xfce-desktop' --kickstart=/var/lib/cobbler/kickstarts/example.ks --parent=centos7mini2-x86_64
215# cobbler profile add --name=centos-data --kickstart=/var/lib/cobbler/kickstarts/jxl_data.ks --parent=centos7mini2-x86_64
216 
217# 修改kickstart文件
218cobbler profile edit --name=centos7mini-x86_64 --kickstart=/var/lib/cobbler/kickstarts/jxl_data.ks
219 
220# 验证kickstart文件内容
221cobbler profile getks --name=centos7mini-x86_64
222 
223# 配置需要安装的机器
224# 针对MAC为00:0C:29:48:30:63的机器安装
225cobbler system add --name=test --profile=centos7mini-x86_64 --interface=eno16777736 --mac=00:0C:29:48:30:63 --ip-address=192.168.211.11 --netmask=255.255.255.0 --static=1 --dns-name=test.mydomain.com --gateway=192.168.211.1 --hostname=test.mydomain.com
226 
227cobbler system report
228 
229 
230#######
231# 让配置生效
232cobbler sync
233 
234#######注意################
235# 检查 dnsmasq dhcp-range是否正确,因为cobbler sync 会修改
236grep "range" /etc/dnsmasq.conf
237dhcp-range=192.168.211.10,192.168.211.20
238 
239# 修改/etc/dnsmasq.conf 后需要重启dnsmasq
240systemctl restart dnsmasq.service
241 
242 
243 
244##############################
245# 安装Cobbler Web 界面
246 
247yum -y install cobbler-web
248# 修改授权
249# /etc/cobbler/modules.conf
250[authentication]
251module = authn_pam
252 
253[authorization]
254module = authz_ownership
255 
256# 添加Cobbler_web 账号
257# useradd web && passwd web
258 
259# 将 账号 添加到Cobbler_web admins组
260# cat /etc/cobbler/users.conf
261[admins]
262admin = ""
263cobbler = ""
264web = ""
265 
266# 重启服务
267service cobblerd restart
268service httpd restart
269 
270# 登录WEB(注意使用https)
271https://192.168.211.131/cobbler_web/
272 
273 
274# Cobbler 子命令介绍
275cobbler check         #检查cobbler配置
276cobbler sync          #步配置到dhcp pxe和数据目录
277cobbler list          #列出所有的cobbler元素
278cobbler import        #导入安装的系统光盘镜像
279cobbler report        #列出各元素的详细信息
280cobbler distro        #查看导入的发行版系统信息
281cobbler profile       #查看配置信息
282cobbler system        #查看添加的系统信息
283cobbler reposync      #同步yum仓库到本地
284 
285cobbler repo add --name=CentOS-7-x86_64 --mirror=http://mirrors.aliyun.com/centos/7/os/x86_64/
286cobbler reposync
287 
288 
289# 参考文档
290# Cobbler官网
291http://cobbler.github.io/manuals/quickstart/
292http://cobbler.github.io/manuals/2.6.0/
293# dnsmasq设置
294http://debugo.com/dnsmasq/
295# 使用 Cobbler 自动化和管理系统安装
296http://www.ibm.com/developerworks/cn/linux/l-cobbler/
297# Cobbler自动化工具同时批量部署CentOS7及CentOS6.5
298http://www.tuicool.com/articles/YZN3qi
299#kickstart配置文件详解
300http://blog.chinaunix.net/uid-17240700-id-2813881.html