tomcat安装及配置教程,apache安装与配置

杨彦露

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。

该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。

  Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

  Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

  cobbler提供的功能  使用 Cobbler,您无需进行人工干预即可安装机器。

Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP 和 TFTP)与存储库镜像。

当希望安装一台新机器时,Cobbler 可以:  使用一个以前定义的模板来配置 DHCP 服务(如果启用了管理 DHCP)  将一个存储库(yum 或 rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统  在 DHCP 配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP 和 MAC 地址)  在 TFTFP 服务目录下创建适当的 PXE 文件  重新启动 DHCP 服务以反映更改  重新启动机器以开始安装(如果电源管理已启用)  Cobbler 支持众多的发行版:Red Hat、Fedora、CentOS、Debian、Ubuntu 和 SuSE。

当添加一个操作系统(通常通过使用 ISO 文件)时,Cobbler 知道如何解压缩合适的文件并调整网络服务,以正确引导机器。

  Cobbler 可使用 kickstart 模板。

基于 Red Hat 或 Fedora 的系统使用 kickstart 文件来自动化安装流程。

通过使用模板,您就会拥有基本的 kickstart 模板,然后定义如何针对一种配置文件或机器配置而替换其中的变量。

例如,一个模板可能包含两个变量 $domain和 $machine_name。

在 Cobbler 配置中,一个配置文件指定 domain=mydomain.com,并且每台使用该配置文件的机器在machine_name 变量中指定其名称。

该配置文件中的所有机器都使用相同的 kickstart 安装且针对 domain=mydomain.com 进行配置,但每台机器拥有其自己的机器名称。

您仍然可以使用 kickstart 模板在不同的域中安装其他机器并使用不同的机器名称。

  为了协助管理系统,Cobbler 可通过 fence scripts 连接到各种电源管理环境。

Cobbler 支持 apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh 和 wti。

要重新安装一台机器,可运行 reboot system foo命令,而且 Cobbler 会使用必要的凭据和信息来为您运行恰当的 fence scripts(比如机器插槽数)。

  除了这些特性,还可使用一个配置管理系统 (CMS)。

您有两种选择:该工具内的一个内部系统,或者集成一个现有的外部 CMS,比如 Chef 或 Puppet。

借助内部系统,您可以指定文件模板,这些模板会依据配置参数进行处理(与 kickstart 模板的处理方式一样),然后复制到您指定的位置。

如果必须自动将配置文件部署到特定机器,那么此功能很有用。

  使用 koan 客户端,Cobbler 可从客户端配置虚拟机并重新安装系统。

我不会讨论配置管理和koan 特性,因为它们不属于本文的介绍范畴。

但是,它们是值得研究的有用特性。

  Cobbler 安装和配置的方法:  一、加载epel源  代码如下:  rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm  二、安装cobbler  1.yum安装所需要的文件  代码如下:  yum -y install tftp-server cobbler cobbler-web pykickstart debmirror httpd python-ctypes xinetd rsync  2.检查cobbler配置是否正确  代码如下:  cobbler check  3.更改settings配置文件  代码如下:  vi /etc/cobbler/settings  next_server: dhcp服务器地址  server: cobbler服务器地址  manage_dhcp: 1  manage_rsync: 1  4.关闭iptables和selinux  代码如下:  /etc/init.d/iptables stop  setenforce 0  5.设置tftp和rsync服务  代码如下:  vi /etc/xinetd.d/tftp  disable yes = disable no pvi /etc/xinetd.d/rsync  disable yes = disable no  6.设置centos系统密码  代码如下:  openssl passwd -1 -salt 'Cobbler' 'cobbler'  7.下载fedora的loader信息  代码如下:  cobbler get-loaders  8.修改dhcp配置模版文件.需要主机的事分配的dhcp地址需要和本机地址在同一网段否则无法启动dhcp  代码如下:  ddns-update-style interim;  allow booting;  allow bootp;  ignore client-updates;  set vendorclass = option vendor-class-identifier;  #修改为自己的网段  subnet 192.168.0.0 netmask 255.255.255.0 {  #修改路由地址  option routers 192.168.0.1;  #域名服务器地址  option domain-name-servers 202.106.0.20;  #子网  option subnet-mask 255.255.255.0;  #分配IP地址段  range dynamic-bootp 192.168.0.100 192.168.0.254;  filename /pxelinux.0;  default-lease-time 21600;  max-lease-time 43200;  next-server $next_server;  }  三、导入镜像到cobbler  1.创建镜像挂载点目录  代码如下:  mkdir -p /mnt/foo  2.挂载iso镜像到创建的目录(可以为自己定制过的iso镜像)  代码如下:  mount -o loop CentOS-6.4-x86_64-mini.iso /mnt/foo  3.从挂载点目录导入os 并将其命名为Centos6.4_mini arch=x86_64  代码如下:  cobbler import --path=/mnt/foo --name=Centos6.4_mini --arch=x86_64  4.指定kickstart文件 (可选 默认我们会指定一个自己定制的kickstart文件)  代码如下:  cobbler profile edit --name=Centos6.4_mini-x86_64 --kickstart=文件路径  5.查看cobbler报告  代码如下:  cobbler report  Distribution : Centos6.4_mini-x86_64  Enable gPXE? : 0  Enable PXE Menu? : 1  Fetchable Files : {}  Kernel Options : {}  Kernel Options (Post Install) : {}  Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks  Kickstart Metadata : {}  Management Classes : []  Management Parameters :   Name Servers : []  Name Servers Search Path : []  Owners : ['admin']  Parent Profile :  Proxy :  Red Hat Management Key :   ......  6.查看导入的镜像列表  代码如下:  cobbler distro list  7.是cobbler生效  代码如下:  cobbler sync  8.重启进入网络引导系统  9.需要注意的是每一次的配置更改都需要执行cobbller sync  四、kickstart文件(以我的配置文件为例)  代码如下:  firewall --disabled  install  #cdrom  rootpw --iscrypted $default_password_crypted  auth --useshadow --passalgo=md5  text  firstboot --disable  keyboard us  lang en_US.UTF-8  url --url=$tree  $yum_repo_stanza  $SNIPPET('network_config') pselinux --disabled  # Do not configure the X Window System  skipx  logging --level=info  #reboot --eject  timezone Asia/Shanghai  #network --device em1 --bootproto=static --ip=192.168.7.123 --netmask=255.255.248.0 --gateway=192.168.0.1 --nameserver 8.8.8.8 --hostname=test --onboot=yes  bootloader --location=mbr --driveorder=sda p# Clear the Master Boot Record  zerombr yes p# Partition clearing information  clearpart --all --initlabel p# Disk partitioning information  part / --fstype=ext4 --size=10240  part swap --size=4096  part /data --fstype=ext4 --grow --size=1 p  %packages  @base  @core  @server-policy  sgpio  device-mapper-persistent-data  ntp p  %post --nochroot  mkdir -p /mnt/sysimage/tmp/custom_data /tmp/custom.log 21  cp /mnt/source/Packages/lnmp_pack.tar.gz /mnt/sysimage/tmp/custom_data /tmp/custom.log 21  cp /mnt/source/Packages/install_packages.sh /mnt/sysimage/tmp/custom_data /tmp/custom.log 21  cp /mnt/source/Packages/ncftp-3.2.5-src.tar.gz /mnt/sysimage/tmp/custom_data /tmp/custom.log 21  cp /mnt/source/Packages/rarlinux-3.8.0.tar.gz /mnt/sysimage/tmp/custom_data /tmp/custom.log 21  cp /mnt/source/Packages/nmon_linux_14i.tar.gz /mnt/sysimage/tmp/custom_data /tmp/custom.log 21 p  %post  cd /tmp/custom_data /tmp/custom.log 21  chmod x install_packages.sh  sh install_packages.sh p  # remove custom_data  rm -rf /tmp/custom_data p  #vim syntax on  echo alias vi='vim' /etc/bashrc p# disable ipv6  echo alias net-pf-10 off /etc/modprobe.d/dist.conf  echo -e optionstipv6tdisable=1 /etc/modprobe.d/dist.conf  echo NETWORKING_IPV6=no /etc/sysconfig/network p#append lib  echo /usr/local/lib/ /etc/ld.so.conf p#modify lang  echo 'export LANG=zh_CN.UTF8' /etc/profile p#disable system auto mail  echo unset MAILCHECK /etc/profile p#modify history  echo 'export HISTTIMEFORMAT=%F %T `whoami` ' /etc/profile  sed -i s/HISTSIZE=1000/HISTSIZE=999999999/ /etc/profile p#modifu ssh port on 3389  echo 'Port 3389' /etc/ssh/sshd_config  echo 'UseDNS no' /etc/ssh/sshd_config p  for i in `ls /etc/rc3.d/S*`  do  CURSRV=`echo $i|cut -c 15-`  chkconfig --level 3 $CURSRV off  done pfor i in crond rsyslog iptables network ntpd sshd sysstat;do chkconfig --level 3 $i on;done psed -i '/HOSTNAME=/d' /etc/sysconfig/network  echo 'HOSTNAME=test' /etc/sysconfig/network p p# sysctl  echo net.core.netdev_max_backlog = 32768 /etc/sysctl.conf  echo net.core.rmem_default = 8388608 /etc/sysctl.conf  echo net.core.rmem_max = 16777216 /etc/sysctl.conf  echo net.core.somaxconn = 32768 /etc/sysctl.conf  echo net.core.wmem_default = 8388608 /etc/sysctl.conf  echo net.core.wmem_max = 16777216 /etc/sysctl.conf  echo net.ipv4.ip_local_port_range = 5000 65000 /etc/sysctl.conf  echo net.ipv4.tcp_fin_timeout = 30 /etc/sysctl.conf  echo net.ipv4.tcp_keepalive_time = 300 /etc/sysctl.conf  echo net.ipv4.tcp_max_orphans = 3276800 /etc/sysctl.conf  echo net.ipv4.tcp_max_syn_backlog = 65536 /etc/sysctl.conf  echo net.ipv4.tcp_max_tw_buckets = 5000 /etc/sysctl.conf  echo net.ipv4.tcp_mem = 94500000 915000000 927000000 /etc/sysctl.conf  echo net.ipv4.tcp_syn_retries = 2 /etc/sysctl.conf  echo net.ipv4.tcp_synack_retries = 2 /etc/sysctl.conf  echo net.ipv4.tcp_syncookies = 1 /etc/sysctl.conf  echo net.ipv4.tcp_timestamps = 0 /etc/sysctl.conf  echo net.ipv4.tcp_tw_recycle = 1 /etc/sysctl.conf  echo net.ipv4.tcp_tw_reuse = 1 /etc/sysctl.conf  /sbin/sysctl -p p# modify core ulimt  echo -e *tsofttnofilet65535 /etc/security/limits.conf  echo -e *thardtnofilet65535 /etc/security/limits.conf pecho -e *tsofttnofilet65535 /etc/security/limits.d/90-nproc.conf  echo -e *thardtnofilet65535 /etc/security/limits.d/90-nproc.conf p# ntpd  cat /etc/sysconfig/clock   ZONE=Asia/Shanghai  UTC=true  ARC=false  EOF  /sbin/service ntpd stop  /usr/sbin/ntpdate 210.167.182.10  /sbin/service ntpd start pCOMMIT  EOF p%end  [/python] p[python]  # 访问cobbler_web  http://IP/cobbler_web  [/python]  五.报错总结  当出现以下信息解决办法  代码如下:  [python]  1 : some network boot-loaders are missing from /var/lib/cobbler/loaders  2 : comment out 'dists' on /etc/debmirror.conf for proper debian support  3 : comment out 'arches' on /etc/debmirror.conf for proper debian support  [/python]  解决方法:  代码如下:  [python]  1.cobbler get-loaders  2 - 3: yun install debmirror vi /etc/debmirror.conf  @dists=sid = #@dists=sid  @arches=i386 = #@arches=i386