CloudBoot

CloudBoot

X86服务器配置安装工具,运维人的“番茄花园”

CloudBoot云装机如何从v1.3.1升级到v1.4?

CloudBoot凌枫 发表了文章 • 0 个评论 • 633 次浏览 • 2017-01-18 16:20 • 来自相关话题

重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql
2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/products/cloudboot-open-source  (md5码:a9fc3c9551346aedd9329f7662b84ad2)
 
第二步:执行以下命令,更新各服务rpm -Uvh cloudboot-1.4-1.x86_64.rpm
第三步:重启服务service cloudboot restart
 done.
 
 
  查看全部
重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:
/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql

2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/products/cloudboot-open-source  (md5码:a9fc3c9551346aedd9329f7662b84ad2)
 
第二步:执行以下命令,更新各服务
rpm -Uvh cloudboot-1.4-1.x86_64.rpm

第三步:重启服务
service cloudboot restart

 done.
 
 
 

CloudBoot云装机如何从v1.3升级到v1.3.1?

CloudBoot凌枫 发表了文章 • 0 个评论 • 416 次浏览 • 2016-08-29 10:03 • 来自相关话题

重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql
2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/store/cloudboot  (MD5码:971e1cfda5685d302d6587a6554c5910)
 
第二步:执行以下命令,更新各服务rpm -Uvh cloudboot-1.3.1-1.x86_64.rpm
第三步:重启服务service cloudboot restart
 done.
 
 
  查看全部
重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:
/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql

2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/store/cloudboot  (MD5码:971e1cfda5685d302d6587a6554c5910)
 
第二步:执行以下命令,更新各服务
rpm -Uvh cloudboot-1.3.1-1.x86_64.rpm

第三步:重启服务
service cloudboot restart

 done.
 
 
 

CloudBoot云装机如何从v1.2.1升级到v1.3?

CloudBoot凌枫 发表了文章 • 0 个评论 • 653 次浏览 • 2016-06-30 17:02 • 来自相关话题

重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql
2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/store/cloudboot  (MD5码:fe36c3bb66231a0ace43287cfe9d03dc)
 
第二步:执行以下命令,更新各服务rpm -Uvh cloudboot-1.3-1.x86_64.rpm
第三步:修改/opt/cloudboot/etc/dhcp/dhcpd.conf ,增加参数 option domain-name "idcos.com"; 格式请参考以下文档:
http://idcos.github.io/osinsta ... .html

第四步:重启服务service cloudboot restart
v1.3升级完之后,第一次打开CloudBoot页面,会进入向导模式。按提示填写各信息即可(或略过)
 
 
  查看全部
重要提示:

1.在更新版本之前,请一定要先导出老的数据,防止数据丢失:
/opt/cloudboot/usr/bin/mysqldump -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot cloudboot > /home/cloudboot.sql

2.请将重要的配置文件先备份一下。

 
安装步骤:

 第一步:下载一键安装包:
http://idcos.com/store/cloudboot  (MD5码:fe36c3bb66231a0ace43287cfe9d03dc)
 
第二步:执行以下命令,更新各服务
rpm -Uvh cloudboot-1.3-1.x86_64.rpm

第三步:修改/opt/cloudboot/etc/dhcp/dhcpd.conf ,增加参数 option domain-name "idcos.com"; 格式请参考以下文档:
http://idcos.github.io/osinsta ... .html

第四步:重启服务
service cloudboot restart

v1.3升级完之后,第一次打开CloudBoot页面,会进入向导模式。按提示填写各信息即可(或略过)
 
 
 

CloudBoot云装机(CloudJ X86)如何从v1.2升级到v1.2.1?

CloudBoot凌枫 发表了文章 • 0 个评论 • 1126 次浏览 • 2016-04-25 17:03 • 来自相关话题

重要提示:
1.在启动服务(service cloudboot start)之前,请一定要先导出V1.2的数据,并停掉老的服务(dhcp/tftp/http/dns/samba/mysql/cloudboot-server)。或者您干脆将V1.2.1安装在另一台设备上(强烈推荐)。
2.请将重要的配置文件或数据先备份一下。
 
 
第一步:进入老Server的命令行,导出V1.2的Mysql数据,拷贝到新Server: mysqldump -uroot -p idcos-osinstall > /home/idcos-osinstall.sql



 第二步:下载一键安装包,一分钟完成各种环境部署:
http://idcos.com/store/cloudboot
 
第三步:根据以下手册,完成安装:
http://idcos.github.io/osinstall-doc/environment/%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2.html
 
第四步:进入新Server 的mysql命令行,执行以下SQL,将V1.2的数据迁移到V1.2.1里:
1.指定V1.2.1的Mysql Socket,进入Mysql命令行:
mysql -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot -p
 
2.执行以下SQL,完成升级:
CREATE DATABASE IF NOT EXISTS `idcos-osinstall` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `idcos-osinstall`;
SET names utf8;
//导入老的数据
source /home/idcos-osinstall.sql;
//迁移到新的数据库中
INSERT INTO `cloudboot`.`devices` SELECT * FROM `idcos-osinstall`.`devices`;
INSERT INTO `cloudboot`.`device_histories` SELECT * FROM `idcos-osinstall`.`device_histories`;
INSERT INTO `cloudboot`.`device_logs` SELECT * FROM `idcos-osinstall`.`device_logs`;
INSERT INTO `cloudboot`.`ips` SELECT * FROM `idcos-osinstall`.`ips`;
INSERT INTO `cloudboot`.`locations` SELECT * FROM `idcos-osinstall`.`locations`;
INSERT INTO `cloudboot`.`macs` SELECT * FROM `idcos-osinstall`.`macs`;
INSERT INTO `cloudboot`.`manage_ips` SELECT * FROM `idcos-osinstall`.`manage_ips`;
INSERT INTO `cloudboot`.`manage_networks` SELECT * FROM `idcos-osinstall`.`manage_networks`;
INSERT INTO `cloudboot`.`manufacturers` SELECT * FROM `idcos-osinstall`.`manufacturers`;
INSERT INTO `cloudboot`.`networks` SELECT * FROM `idcos-osinstall`.`networks`;
INSERT INTO `cloudboot`.`users` SELECT * FROM `idcos-osinstall`.`users`;
INSERT INTO `cloudboot`.`user_access_tokens` SELECT * FROM `idcos-osinstall`.`user_access_tokens`;
INSERT INTO `cloudboot`.`vm_devices` SELECT * FROM `idcos-osinstall`.`vm_devices`;
  查看全部
重要提示:
1.在启动服务(service cloudboot start)之前,请一定要先导出V1.2的数据,并停掉老的服务(dhcp/tftp/http/dns/samba/mysql/cloudboot-server)。或者您干脆将V1.2.1安装在另一台设备上(强烈推荐)。
2.请将重要的配置文件或数据先备份一下。
 
 
第一步:进入老Server的命令行,导出V1.2的Mysql数据,拷贝到新Server: 
mysqldump -uroot -p idcos-osinstall > /home/idcos-osinstall.sql



 第二步:下载一键安装包,一分钟完成各种环境部署:
http://idcos.com/store/cloudboot
 
第三步:根据以下手册,完成安装:
http://idcos.github.io/osinstall-doc/environment/%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2.html
 
第四步:进入新Server 的mysql命令行,执行以下SQL,将V1.2的数据迁移到V1.2.1里:
1.指定V1.2.1的Mysql Socket,进入Mysql命令行:
mysql -S /opt/cloudboot/var/lib/mysql/mysql.sock -uroot -p
 
2.执行以下SQL,完成升级:
CREATE DATABASE IF NOT EXISTS `idcos-osinstall` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `idcos-osinstall`;
SET names utf8;
//导入老的数据
source /home/idcos-osinstall.sql;
//迁移到新的数据库中
INSERT INTO `cloudboot`.`devices` SELECT * FROM `idcos-osinstall`.`devices`;
INSERT INTO `cloudboot`.`device_histories` SELECT * FROM `idcos-osinstall`.`device_histories`;
INSERT INTO `cloudboot`.`device_logs` SELECT * FROM `idcos-osinstall`.`device_logs`;
INSERT INTO `cloudboot`.`ips` SELECT * FROM `idcos-osinstall`.`ips`;
INSERT INTO `cloudboot`.`locations` SELECT * FROM `idcos-osinstall`.`locations`;
INSERT INTO `cloudboot`.`macs` SELECT * FROM `idcos-osinstall`.`macs`;
INSERT INTO `cloudboot`.`manage_ips` SELECT * FROM `idcos-osinstall`.`manage_ips`;
INSERT INTO `cloudboot`.`manage_networks` SELECT * FROM `idcos-osinstall`.`manage_networks`;
INSERT INTO `cloudboot`.`manufacturers` SELECT * FROM `idcos-osinstall`.`manufacturers`;
INSERT INTO `cloudboot`.`networks` SELECT * FROM `idcos-osinstall`.`networks`;
INSERT INTO `cloudboot`.`users` SELECT * FROM `idcos-osinstall`.`users`;
INSERT INTO `cloudboot`.`user_access_tokens` SELECT * FROM `idcos-osinstall`.`user_access_tokens`;
INSERT INTO `cloudboot`.`vm_devices` SELECT * FROM `idcos-osinstall`.`vm_devices`;

 

能提供windows的批处理脚本和驱动吗?

回复

CloudBootgiraffe 发起了问题 • 1 人关注 • 0 个回复 • 652 次浏览 • 2016-03-22 11:05 • 来自相关话题

CloudBoot如何从v1.1升级到v1.2?

CloudBootgiraffe 回复了问题 • 3 人关注 • 3 个回复 • 655 次浏览 • 2016-03-18 11:03 • 来自相关话题

CloudBoot 之 PXE引导安装系统原理

CloudBootSiffre 发表了文章 • 0 个评论 • 847 次浏览 • 2016-02-02 11:24 • 来自相关话题

看图就行了:
 



 
看图就行了:
 
PXE引导开机流程.png

 

ClooudBoot 之 RPM打包

CloudBootSiffre 发表了文章 • 0 个评论 • 803 次浏览 • 2016-01-26 17:22 • 来自相关话题

FPM打包工具

FPM的作者是:jordansissel
FPM的github:https://github.com/jordansissel/fpm
FPM功能简单说就是将一种类型的包转换成另一种类型。

1. 支持的源类型包dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm 对rpm进行转换
gem 对rubygem包进行转换
python 将python模块打包成相应的类型



2. 支持的目标类型包rpm 转换为rpm包
deb 转换为deb包
solaris 转换为solaris包
puppet 转换为puppet模块
3. FPM安装fpm是ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5。
# 安装ruby模块
yum -y install ruby rubygems ruby-devel
# 添加阿里云的Rubygems仓库,外国的源慢
gem sources -a http://mirrors.aliyun.com/rubygems/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm
4. FPM参数详细使用见fpm –help

常用参数

-s 指定源类型
-t 指定目标类型,即想要制作为什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径 Change directory to here before searching forfiles
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出的安装包的目录,不想放在当前目录下就需要指定
--post-install 软件包安装完成之后所要运行的脚本;同--after-install
--pre-install 软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove
--pre-uninstall 软件包卸载完成之前所要运行的脚本;同--before-remove使用实例–实战定制nginx的RPM包

1. 安装nginxyum -y install pcre-devel openssl-devel
useradd nginx -M -s /sbin/nologin
tar xf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/application/nginx-1.6.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install
ln -s /application/nginx-1.6.2/ /application/nginx
2. 编写脚本[root@oldboy ~]# cd /server/scripts/
[root@oldboy scripts]# vim nginx_rpm.sh # 这是安装完rpm包要执行的脚本
#!/bin/bash
useradd nginx -M -s /sbin/nologin
ln -s /application/nginx-1.6.2/ /application/nginx
3. 打包# fpm -s dir -t rpm -n nginx -v 1.6.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.2/
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# ll -h nginx-1.6.2-1.x86_64.rpm
-rw-r--r-- 1 root root 6.7M Nov 1 10:02 nginx-1.6.2-1.x86_64.rpm
4. 安装rpm包

安装rpm包的三种方法:
rpm命令安装
# rpm -ivh nginx-1.6.2-1.x86_64.rpm
error: Failed dependencies:
pcre-devel is needed by nginx-1.6.2-1.x86_64
openssl-devel is needed by nginx-1.6.2-1.x86_64
但会报如上依赖错误,需要先yum安装依赖才能安装rpm包。
yum命令安装rpm包
yum -y localinstall nginx-1.6.2-1.x86_64.rpm
这个命令会自动先安装rpm包的依赖,然后再安装rpm包。



搭建内网yum仓库YUM仓库搭建见这里:http://jcenter.idcos.com//article/28

注意事项

1. 路径问题# 相对路径
# fpm -s dir -t rpm -n nginx -v 1.6.2 .
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/client_body_temp
/conf/extra/dynamic_pools
/conf/extra/static_pools
…………
# 绝对路径
# fpm -s dir -t rpm -n nginx -v 1.6.2 /application/nginx-1.6.2/
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/application/nginx-1.6.2/client_body_temp
/application/nginx-1.6.2/conf/extra/dynamic_pools
/application/nginx-1.6.2/conf/extra/static_pools
/application/nginx-1.6.2/conf/fastcgi.conf
/application/nginx-1.6.2/conf/fastcgi.conf.default
…………
使用rpm -qpl 命令可以查看rpm包的内容。
注:fpm类似tar打包一样,只是fpm打的包能够被yum命令识别而已。
2. 软链接问题# fpm -s dir -t rpm -n nginx -v 1.6.2 /application/nginx
no value for epoch is set, defaulting to nil {:level=>:warn}
File already exists, refusing to continue: nginx-1.6.2-1.x86_64.rpm {:level=>:fatal}
# 报错是因为当前目录存在同名的rpm包,可以使用-f参数强制覆盖。

# fpm -s dir -t rpm -n nginx -v 1.6.2 -f /application/nginx
no value for epoch is set, defaulting to nil {:level=>:warn}
Force flag given. Overwriting package at nginx-1.6.2-1.x86_64.rpm {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}
打包看似成功,但查看包的内容,只是这一个软链接文件。

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/application/nginx
原因:目录结尾的/问题,类似rm删除软链接目录
定制LNMP的RPM包思路

编译安装好nginx,mysql,php,此处有个问题,就是php的大部分依赖环境是通过yum安装的,但有一个libiconv-1.14.tar.gz包需要编译安装,安装时已经指定了安装目录,只需一同打包即可。

还有一个问题,就是mysql这个目录比较大,用fpm打包耗时长。平时我们有可能需要对nginx或php做优化,这样又得重新打包。因此我们可以将mysql分离出来,分别打包。只需在制作nginx+php的rpm包时添加mysql的依赖即可。# 参考命令
# fpm -s dir -t rpm -n web2 -v 1.1 \
--description 'lnmp.cms,bbs.blog' \
-d ‘libxslt-devel,nfs-utils,rpcbind,mysql,libmcrypt-devel,mhash,mhash-devel,mcrypt' \
--post-install /server/scripts/lnmp-init.sh \
/application /usr/local/libiconv/ /app/logs/ /data0/ /server/ 查看全部
FPM打包工具

FPM的作者是:jordansissel
FPM的github:https://github.com/jordansissel/fpm
FPM功能简单说就是将一种类型的包转换成另一种类型。

1. 支持的源类型包
dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm 对rpm进行转换
gem 对rubygem包进行转换
python 将python模块打包成相应的类型



2. 支持的目标类型包
rpm 转换为rpm包
deb 转换为deb包
solaris 转换为solaris包
puppet 转换为puppet模块

3. FPM安装
fpm是ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5。
# 安装ruby模块
yum -y install ruby rubygems ruby-devel
# 添加阿里云的Rubygems仓库,外国的源慢
gem sources -a http://mirrors.aliyun.com/rubygems/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm

4. FPM参数
详细使用见fpm –help

常用参数

-s 指定源类型
-t 指定目标类型,即想要制作为什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径 Change directory to here before searching forfiles
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出的安装包的目录,不想放在当前目录下就需要指定
--post-install 软件包安装完成之后所要运行的脚本;同--after-install
--pre-install 软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove
--pre-uninstall 软件包卸载完成之前所要运行的脚本;同--before-remove
使用实例–实战定制nginx的RPM包

1. 安装nginx
yum -y install pcre-devel openssl-devel
useradd nginx -M -s /sbin/nologin
tar xf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/application/nginx-1.6.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install
ln -s /application/nginx-1.6.2/ /application/nginx

2. 编写脚本
[root@oldboy ~]# cd /server/scripts/
[root@oldboy scripts]# vim nginx_rpm.sh # 这是安装完rpm包要执行的脚本
#!/bin/bash
useradd nginx -M -s /sbin/nologin
ln -s /application/nginx-1.6.2/ /application/nginx

3. 打包
# fpm -s dir -t rpm -n nginx -v 1.6.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.2/
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# ll -h nginx-1.6.2-1.x86_64.rpm
-rw-r--r-- 1 root root 6.7M Nov 1 10:02 nginx-1.6.2-1.x86_64.rpm

4. 安装rpm包

安装rpm包的三种方法:
  • rpm命令安装

# rpm -ivh nginx-1.6.2-1.x86_64.rpm
error: Failed dependencies:
pcre-devel is needed by nginx-1.6.2-1.x86_64
openssl-devel is needed by nginx-1.6.2-1.x86_64
但会报如上依赖错误,需要先yum安装依赖才能安装rpm包。

  • yum命令安装rpm包

yum -y localinstall nginx-1.6.2-1.x86_64.rpm
这个命令会自动先安装rpm包的依赖,然后再安装rpm包。





注意事项

1. 路径问题
# 相对路径
# fpm -s dir -t rpm -n nginx -v 1.6.2 .
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/client_body_temp
/conf/extra/dynamic_pools
/conf/extra/static_pools
…………
# 绝对路径
# fpm -s dir -t rpm -n nginx -v 1.6.2 /application/nginx-1.6.2/
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/application/nginx-1.6.2/client_body_temp
/application/nginx-1.6.2/conf/extra/dynamic_pools
/application/nginx-1.6.2/conf/extra/static_pools
/application/nginx-1.6.2/conf/fastcgi.conf
/application/nginx-1.6.2/conf/fastcgi.conf.default
…………
使用rpm -qpl 命令可以查看rpm包的内容。
注:fpm类似tar打包一样,只是fpm打的包能够被yum命令识别而已。

2. 软链接问题
# fpm -s dir -t rpm -n nginx -v 1.6.2 /application/nginx
no value for epoch is set, defaulting to nil {:level=>:warn}
File already exists, refusing to continue: nginx-1.6.2-1.x86_64.rpm {:level=>:fatal}
# 报错是因为当前目录存在同名的rpm包,可以使用-f参数强制覆盖。

# fpm -s dir -t rpm -n nginx -v 1.6.2 -f /application/nginx
no value for epoch is set, defaulting to nil {:level=>:warn}
Force flag given. Overwriting package at nginx-1.6.2-1.x86_64.rpm {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.2-1.x86_64.rpm"}
打包看似成功,但查看包的内容,只是这一个软链接文件。

# rpm -qpl nginx-1.6.2-1.x86_64.rpm
/application/nginx
原因:目录结尾的/问题,类似rm删除软链接目录

定制LNMP的RPM包思路

编译安装好nginx,mysql,php,此处有个问题,就是php的大部分依赖环境是通过yum安装的,但有一个libiconv-1.14.tar.gz包需要编译安装,安装时已经指定了安装目录,只需一同打包即可。

还有一个问题,就是mysql这个目录比较大,用fpm打包耗时长。平时我们有可能需要对nginx或php做优化,这样又得重新打包。因此我们可以将mysql分离出来,分别打包。只需在制作nginx+php的rpm包时添加mysql的依赖即可。
# 参考命令
# fpm -s dir -t rpm -n web2 -v 1.1 \
--description 'lnmp.cms,bbs.blog' \
-d ‘libxslt-devel,nfs-utils,rpcbind,mysql,libmcrypt-devel,mhash,mhash-devel,mcrypt' \
--post-install /server/scripts/lnmp-init.sh \
/application /usr/local/libiconv/ /app/logs/ /data0/ /server/

ClloudBoot 之 YUM仓库搭建

CloudBootSiffre 发表了文章 • 0 个评论 • 1324 次浏览 • 2016-01-26 11:02 • 来自相关话题

YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。

相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。
 
我们将针对以下两种方式进行讲解:







 
一、 自己制作或单独下载的RPM包
 
1. 创建yum仓库目录mkdir -p /application/yum/centos6.6/x86_64/2.上传rpm包到此目录,此目录下面还可以包括文件夹cd /application/yum/centos6.6/x86_64/
rz -y3.安装createrepo软件yum -y install createrepo4.初始化repodata索引文件createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/



5.提供yum服务# 可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
cd /application/yum/centos6.6/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &
可以通过浏览器输入本机IP查看。6.添加新的rpm包
只下载软件不安装
yumdownloader pcre-devel openssl-devel
 每加入一个rpm包就要更新一下。
createrepo --update /application/yum/centos6.6/x86_64/7.平时yum安装软件时不删除安装包# cat /etc/yum.conf
keepcache=1
# 安装包存储目录
cachedir=/var/cache/yum/$basearch/$releasever
# /var/cache/yum/x86_64/6/base/packages8.客户端配置# cd /etc/yum.repos.d
vim Siffre.repo
[Siffre]
name=Server
baseurl=http://10.0.0.8
enable=1
gpgcheck=0
指定使用Siffre库
yum --enablerepo=Siffre --disablerepo=base,extras,updates,epel list
上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。
cd /etc/yum.repos.d/
vim CentOS-Base.repo
# 在每一个启动的源加上
# enabled=0 #改为1就启用,没有此参数也是启用。
[base]
…………
enabled=0
[updates]
…………
enabled=0
[extras]
…………
enabled=0
# 还有其他开启的仓库就使用这个办法关闭。二、镜像yum源

上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。

镜像同步公网yum源:
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。http://mirrors.ustc.edu.cn/status/CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/epel源:rsync://mirrors.ustc.edu.cn/epel/
 同步命令:
使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。
同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/
 epel源
/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/学生使用内网yum源方法:
可以自建一个内网dns,如果没有,可使用hosts解析
echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts
结果展示
# du -sh yum_data
21G yum_data
# tree -L 3 yum_data/
yum_data/
├── centos
│ ├── 6
│ │ ├── extras
│ │ ├── os
│ │ └── updates
│ └── RPM-GPG-KEY-CentOS-6
├── epel
│ └── 6
│ └── x86_64
 
 
  查看全部
YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。

相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。
 
我们将针对以下两种方式进行讲解:


screenshot.png


 
一、 自己制作或单独下载的RPM包
 
1. 创建yum仓库目录
mkdir -p /application/yum/centos6.6/x86_64/
2.上传rpm包到此目录,此目录下面还可以包括文件夹
cd /application/yum/centos6.6/x86_64/
rz -y
3.安装createrepo软件
yum -y install createrepo
4.初始化repodata索引文件
createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/



5.提供yum服务
# 可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
cd /application/yum/centos6.6/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &
可以通过浏览器输入本机IP查看。
6.添加新的rpm包
  • 只下载软件不安装

yumdownloader pcre-devel openssl-devel

  •  每加入一个rpm包就要更新一下。

createrepo --update /application/yum/centos6.6/x86_64/
7.平时yum安装软件时不删除安装包
# cat /etc/yum.conf
keepcache=1
# 安装包存储目录
cachedir=/var/cache/yum/$basearch/$releasever
# /var/cache/yum/x86_64/6/base/packages
8.客户端配置
# cd /etc/yum.repos.d
vim Siffre.repo
[Siffre]
name=Server
baseurl=http://10.0.0.8
enable=1
gpgcheck=0

  • 指定使用Siffre库

yum --enablerepo=Siffre --disablerepo=base,extras,updates,epel list

  • 上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。

 cd /etc/yum.repos.d/
vim CentOS-Base.repo
# 在每一个启动的源加上
# enabled=0 #改为1就启用,没有此参数也是启用。
[base]
…………
enabled=0
[updates]
…………
enabled=0
[extras]
…………
enabled=0
# 还有其他开启的仓库就使用这个办法关闭。
二、镜像yum源

上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。

镜像同步公网yum源:
  • 上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。
  • http://mirrors.ustc.edu.cn/status/
  • CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/
  • epel源:rsync://mirrors.ustc.edu.cn/epel/

 同步命令:
  • 使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。

  • 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/

  •  epel源

/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/
学生使用内网yum源方法:
  • 可以自建一个内网dns,如果没有,可使用hosts解析

echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts

  • 结果展示

# du -sh yum_data
21G yum_data
# tree -L 3 yum_data/
yum_data/
├── centos
│ ├── 6
│ │ ├── extras
│ │ ├── os
│ │ └── updates
│ └── RPM-GPG-KEY-CentOS-6
├── epel
│ └── 6
│ └── x86_64

 
 
 

CloudBoot 之 Cobbler

CloudBootSiffre 发表了文章 • 0 个评论 • 1271 次浏览 • 2016-01-22 16:38 • 来自相关话题

一、Cobbler介绍

1.Cobbler

Cobbler是一个快速网络安装操作系统的服务软件。该工具使用Python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS以及yum仓库,构造系统ISO镜像。

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

Cobbler 可以支持PXE启动, 操作系统重新安装, 以及虚拟化客户机创建,包括Xen, KVM or VMware. Cobbler透过koan程序以支持虚拟化客户机安装。Cobbler可以支持管理复杂网路环境,如创建在链路聚合以太网的桥接环境。

Cobbler提供以下服务集成:
PXE服务支持DHCP服务管理DNS服务管理电源管理KickStart服务支持Yum仓库管理

2. 使用和支持Cobbler的组织











3.系统支持

参见官网:https://cobbler.github.io/manuals/2.6.0/1/2_-_Distribution_Support.html
 
4. 常用架构






5.Cobbler工作流程






6.Cobbler模型






二、实验环境
Cobbler服务器系统:CentOS 6.7 64位 【VMWare】
 
IP地址:192.168.16.128

需要安装部署的Linux系统:
eth0(第一块网卡,用于外网)IP地址段:192.168.16.129-192.168.16.135
 
子网掩码:255.255.255.0
 
网关:192.168.16.1
 
DNS:8.8.8.8
 
所有服务器均支持PXE网络启动
 
三、Cobbler安装和部署
 
3.1 Cobbler安装和环境部署

3.1.1Cobbler环境准备

前提:
需要一个DVD或ISO文件的操作系统的分布;服务器有足够的本地磁盘可用空间在/var/www/cobbler解压缩DVD/ISO;服务器和客户端都有一个共同的IP网络;这个网络上的DHCP服务器是唯一的实例;在此网络上的客户端是支持PXE网络启动;

3.1.2 定义Yum源

对于CentOS本身源,可根据自己所在地选择离自己进的镜像源,比如mirrors.163.com或mirrors.sohu.com

相关配置文件: /etc/yum.repos.d/CentOS-Base.repo,采用网易的源cd /etc/yum.repos.d/

mkdir backup

mv *.repo ./backup

wget -c -O CentOS-Base.repo
http://mirrors.163.com/.help/CentOS6-Base-163.repo

yum list注:搭建本地Yum仓库,参考这里:http://jcenter.idcos.com/?/article/28
 
3.1.3 安装EPEL源

cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包,确保epel-release包的版本为最新Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm
安装
rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm'

yum update (升级所有包,改变软件设置和系统设置,系统版本内核都升级)

yum upgrade (升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变)
检查是否安装
yum list|grep -E "^epel"

epel-release.noarch 6-8 installed3.1.4 关闭Selinux和iptables防火墙
关闭防火墙
#Cobbler会使用到好几个端口,为了简化,直接把iptables关闭
chkconfig ip6tables off
chkconfig iptables off
/etc/init.d/ip6tables stop
/etc/init.d/iptables stop
关闭Selinux
sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
重启系统生效
reboot3.2 Cobbler安装和配置

3.2.1安装Cobbler
安装Cobbler包(需要支持web,则安装cobbler-web)
yum install -y cobbler cobbler-web
安装Cobbler相关包
yum install -y tftp-server xinetd dhcp httpd rsync
安装运行Cobbler需要的软件包
yum install -y pykickstart debmirror python-ctypes cma注:
如果要部署debian/ubuntu系统,则需要debmirror软件包;想使用电源管理功能的话需要安装cman或fence-agents;如果需要管理DNS,这需要安装bind软件包;打开服务需要使用的端口如下:
udp ———> 69 ———> tftpudp ———> 53 ———> dnstcp ———> 80/443 ———> web【http】dhcp ———> 67 68
 
启动Cobbler
/etc/init.d/cobblerd start
启动完后,cobbler check命令检查错误【以下是常见错误】
cobbler checkThe following are potential configuration items that you may want to fix:
#错误指出我们的cobbler不应该是本地的IP地址,而是一个可以被解析的hostname或者IP

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
#错误指出next_server的IP地址不应该是127.0.0.1的主机地址,而应该是一个真正的tftp服务器地址

2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
#错误是不一定要联网下载某些程序,而安装syslinux就可以;【安装完syslinux 问题依旧,可直接忽略...】

3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
#更改tftp和rsync由cobbler管理

4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
#debmrror没有定义好,yum install 安装即可

5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
#需要额外安装pykickstart

6 : ksvalidator was not found, install pykickstart
#cobbler安装完成后的管理员密码需要替换,因为所有安装后的密码都是一致的

7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
#没有fencing设备,为可选的

8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
Restart cobblerd and then run 'cobbler sync' to apply changes.3.2.2配置Cobbler

3.2.2.1设置HTTP服务
修改HTTP配置文件
vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1:80
启用wsgi模块【失败—可忽略】需要确认mod_wsgi已经正确安装,否则需要手动安装yum -y install mod_wsgi
rpm -qa |grep wsgi #检查
mod_wsgi-3.2-7.el6.x86_64
启用wsgi模块只需要取消/etc/httpd/conf.d/wsgi.conf文件中 LoadModule wsgi_module modules/mod_wsgi.so 行的注释
sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf
cat /etc/httpd/conf.d/wsgi.conf #查看
LoadModule wsgi_module modules/mod_wsgi.so3.2.2.2配置tftp和rsync

修改rsync和tftp这两个服务的xinetd配置,只需修改rsync和tftp的配置文件,讲disable = yes 修改为 disable = no来开启tftp 和 rsync 服务的开机自启动sed -i 's/ disable = yes/ disable = no/' /etc/xinetd.d/tftp
sed -i 's/ disable = yes/ disable = no/' /etc/xinetd.d/rsync
/etc/init.d/xinetd restart3.2.2.3 配置cobbler主配置文件

在启动Cobbler服务之前,你需要修改一些配置文件。在修改每一个文件之前最好先备份下当前的文件。

Cobblerd的配置文件为/etc/cobbler/settings ,这个文件是YAML信息的格式文件。

根据需要修改 cobbler主配置文件: /etc/cobbler/settings

Server 和 Next_Server
server 选项设置IP用于为cobbler 服务器指定地址,请不要使用0.0.0.0,设置一个你希望和cobbler服务器通过http和tftp等协议链接的IP
sed -i 's/server: 127.0.0.1/server: 192.168.21.128/g' /etc/cobbler/settings
next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.21.128 /g' /etc/cobbler/settings
修改后,查看结果
grep -E "^server|next_server" /etc/cobbler/settings
next_server: 192.168.16.130
server: 192.168.16.1303.2.2.4 Cobbler管理rsync 和 dhcp服务

为了pxe的启动,需要一个DHCP服务器地址,并直接引导系统,它可以在网络中下载引导文件到TFTP的服务器,cobbler可以通过manage_dhcp的设置来进行管理,让cobbler来管理dhcp服务,在做自定义配置时,需要修改dhcp相关配置,以配合PXE启动用,编辑文件/etc/cobbler/settings 
manage_dhcp: 1 (注:默认为0,表示不进行管理dhcp服务,可以修改为1,对其进行管理。此为使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync]) 默认为0,不对rsync进行管理,可以修改为1 进行管理
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/setting
修改后,查看结果
grep -E "^manage_dhcp|^manage_rsync" /etc/cobbler/settings
manage_dhcp: 1
manage_rsync: 13.2.3 配置cobbler的web环境
修改认证文件
grep "module = authn_configfile" /etc/cobbler/modules.conf
module = authn_configfile # 修改认证方式为密码文件类型
用户和密码
htdigest /etc/cobbler/users.digest "Cobbler" tech
#添加tech用户,提示输入2遍密码确认
Adding user tech in realm Cobbler
New password: 123123 # 这里我设置的密码是 123123
Re-type new password: 123123
生成cobbler安装系统root初始密码
openssl passwd -1 -salt 'random-phrase-here' ' 1234567890' # 该密码是用来登录通过cobbler安装后新机器的密码
$1$random-p$RkqDMTpuNlZZhJ7moLn3Q
将上面的加密串加入cobbler配置文件中
vim /etc/cobbler/settings
#修改为如下配置
default_password_crypted: " $1$random-p$RkqDMTpuNlZZhJ7moLn3Q."
查看
grep "default_password" /etc/cobbler/settings
default_password_crypted: " $1$random-p$RkqDMTpuNlZZhJ7moLn3Q."3.2.4 配置dhcp与cobbler相关服务
做任何修改操作前,先备份
cp /etc/cobbler/dhcp.template{,.bak}
ll /etc/cobbler/dhcp.template*
-rw-r--r-- 1 root root 2946 Jul 18 2014 /etc/cobbler/dhcp.template
-rw-r--r-- 1 root root 2946 Jul 7 17:01 /etc/cobbler/dhcp.template.bak
修改dhcp配置文件
vim /etc/cobbler/dhcp.template

ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;# 需要修改192.168.16.0为自己网段
subnet 192.168.16.0 netmask 255.255.255.0 {
option routers 192.168.16.1; # 修改自己的路由
option domain-name-servers 8.8.8.8; # 域名服务器地址
option subnet-mask 255.255.255.0; # 子网掩码
range dynamic-bootp 192.168.16.140 192.168.16.250;#指定IP范围
filename "/pxelinux.0";
default-lease-time 21600; #缺省租约时间
max-lease-time 43200; #最大租约时间
next-server 192.168.16.130; #指定引导服务器【cobbler服务器IP】
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}
}其余部分维持现状,将上述内容拷贝到/etc/dhcp/dhpcd.conf里。
设置debmirror
#注释掉@dists和@arches的行
sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf
sed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
下载引导操作系统文件
#加载部分缺失的网络boot-loaders
cobbler get-loaders
检查Cobbler配置
cobbler check

The following are potential configuration items that you may want to fix:
#dhcpd没有运行
1 : service dhcpd is not running
#执行cobbler get-loaders 系统将自动下载loader程序
2 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.

Restart cobblerd and then run 'cobbler sync' to apply changes
DHCP启动成功后,执行sync同步得到如下结果表示成功
cobbler sync

task started: 2014-12-29_184104_sync
task started (id=Sync, time=Mon Dec 29 18:41:04 2014)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/CentOS6.6-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/CentOS6.6-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
copying: /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
copying: /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying: /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying distros to tftpboot
copying files for distro: CentOS6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS6.6-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS6.6-x86_64/initrd.img
Writing template files for CentOS6.6-x86_64
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS6.6-x86_64
cleaning link caches
rendering Rsync files
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]

received on stderr:
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE *** → 出现此行提示,表示sync同步dhcp成功3.2.5重启cobbler和更新相关配置
重启服务
/etc/init.d/cobblerd restart
同步最新cobbler配置,它会根据配置自动修改dhcp,bind等服务,因此我称之为容器的原因
cobbler sync # 同步配置文件到dhcp服务器
启动相关服务并设置开机启动
chkconfig httpd on
chkconfig xinetd on
chkconfig cobblerd on
chkconfig dhcpd on
/etc/init.d/httpd restart
/etc/init.d/xinetd restart
/etc/init.d/cobblerd restart
/etc/init.d/dhcpd restart
设置Cobbler相关服务启动脚本
 vim /etc/init.d/coobler

#!/bin/sh
# chkconfig: - 80 90
# description:cobbler
case $1 in
start)
/etc/init.d/httpd start
/etc/init.d/xinetd start
/etc/init.d/dhcpd start
/etc/init.d/cobblerd start
;;
stop)
/etc/init.d/httpd stop
/etc/init.d/xinetd stop
/etc/init.d/dhcpd stop
/etc/init.d/cobblerd stop
;;
restart)
/etc/init.d/httpd restart
/etc/init.d/xinetd restart
/etc/init.d/dhcpd restart
/etc/init.d/cobblerd restart
;;
status)
/etc/init.d/httpd status
/etc/init.d/xinetd status
/etc/init.d/dhcpd status
/etc/init.d/cobblerd status
;;
sync)
cobbler sync
;;
*)
echo "Input error,please in put 'start|stop|restart|status|sync'!";
exit 2>&1 >/dev/null &
;;
esac
EOF
添加脚本执行权限
chmod +x /etc/rc.d/init.d/cobbler
添加开机启动
chkconfig cobbler on
重启
cobblerservice cobbler restart
挂载系统安装镜像到http服务器站点目录
上传ISO镜像到服务器的/server/iso/目录创建目录/var/www/html/os/{CentOS-6.6-x86_64}
mkdir -p /var/www/html/os/CentOS-6.6-x86_64 # 创建挂载目录
提示:如果是本地iso镜像则挂载用 loop方式; 如果是挂载光盘则直接挂载到指定目录即可
mount -t iso9660 -o loop /root/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.6-x86_64/

mount /dev/cdrom /var/www/html/os/CentOS-6.6-x86_64/
挂载完之后,要编辑开机自挂载项
vi /etc/fstab
/server/iso/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.6-x86_64 iso9660 defaults 0 0
或者
/dev/cdrom /var/www/html/os/CentOS-6.6-x86_64 iso9660 defaults 0 0备注:
iso9660使用df -T 查看设备 卸载:umount /var/www/html/os/CentOS-6.5-x86_64重复上面的操作,把自己需要安装的CentOS系统镜像文件都挂载到/var/www/html/os/目录下
 
例如: CentOS-5.10-x86_64-bin-DVD-1of2.iso CentOS-7.0-1406-x86_64-DVD.iso
 
 导入系统镜像到cobbler

从DVD中导入客户端的OS; 将自动设置了“x86_64”,并将其命名为CentOS6.6-x86_64,导入需要时间,可查看/var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/目录文件生成情况cobbler import --path=/var/www/html/os/CentOS-6.6-x86_64 --name=CentOS-6.6-x86_64 --arch=x86_64
命令格式:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64位
参数说明:
--name 为安装源定义一个名字
--arch 指定安装源是32位还是64位、ia64, 目前支持的选项有: x86│x86_64│ia64导入成功的结果如下:task started: 2014-12-28_214043_import
task started (id=Media import, time=Sun Dec 28 21:40:43 2014)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64:
creating new distro: CentOS-6.6-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64 -> /var/www/cobbler/links/CentOS-6.6-x86_64
creating new profile: CentOS-6.6-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
sta将需要安装系统的服务器网卡启用 PXE,启动服务器从 PXE 引导 默认从本地硬盘引导,可以修改,建议还是保持此默认 rting descent into /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64 for CentOS-6.6-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/repodata
*** TASK COMPLETE ***四、安装系统
 
4.1 命令行安装
 
将需要安装系统的服务器网卡启用 PXE,启动服务器从 PXE 引导 默认从本地硬盘引导,可以修改,建议还是保持此默认 。

选择对应的系统即可安装:




 
4.2 Web安装
 
Cobbler web 界面是一个很好的前端,非常容易管理 Cobbler,可以添加和删除 system distro profile,可 以 查 看 、 编 辑 distros, profiles,subprofiles, systems, repos 、 kickstart 文件 。
 
浏览器访问登录页面: https://ip/cobbler_web ,输入用户名密码即可





 
登录后的页面





 
web 管理相对易于使用管理这里就不再赘述。 
 
====>Cobbler就介绍到这里了,详情可参见官方网站:https://cobbler.github.io/manuals/2.6.0/ 查看全部
一、Cobbler介绍

1.Cobbler

Cobbler是一个快速网络安装操作系统的服务软件。该工具使用Python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS以及yum仓库,构造系统ISO镜像。

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

Cobbler 可以支持PXE启动, 操作系统重新安装, 以及虚拟化客户机创建,包括Xen, KVM or VMware. Cobbler透过koan程序以支持虚拟化客户机安装。Cobbler可以支持管理复杂网路环境,如创建在链路聚合以太网的桥接环境。

Cobbler提供以下服务集成:
  • PXE服务支持
  • DHCP服务管理
  • DNS服务管理
  • 电源管理
  • KickStart服务支持
  • Yum仓库管理


2. 使用和支持Cobbler的组织

1.png


2.png


3.系统支持

参见官网:https://cobbler.github.io/manuals/2.6.0/1/2_-_Distribution_Support.html
 
4. 常用架构

cobbler(1).jpg


5.Cobbler工作流程

流程(3).jpg


6.Cobbler模型

3.png


二、实验环境
  • Cobbler服务器系统:CentOS 6.7 64位 【VMWare】

 
  • IP地址:192.168.16.128


需要安装部署的Linux系统:
  • eth0(第一块网卡,用于外网)IP地址段:192.168.16.129-192.168.16.135

 
  • 子网掩码:255.255.255.0

 
  • 网关:192.168.16.1

 
  • DNS:8.8.8.8

 
  • 所有服务器均支持PXE网络启动

 
三、Cobbler安装和部署
 
3.1 Cobbler安装和环境部署

3.1.1Cobbler环境准备

前提:

  • 需要一个DVD或ISO文件的操作系统的分布;
  • 服务器有足够的本地磁盘可用空间在/var/www/cobbler解压缩DVD/ISO;
  • 服务器和客户端都有一个共同的IP网络;
  • 这个网络上的DHCP服务器是唯一的实例;
  • 在此网络上的客户端是支持PXE网络启动;


3.1.2 定义Yum源

对于CentOS本身源,可根据自己所在地选择离自己进的镜像源,比如mirrors.163.com或mirrors.sohu.com

相关配置文件: /etc/yum.repos.d/CentOS-Base.repo,采用网易的源
cd /etc/yum.repos.d/

mkdir backup

mv *.repo ./backup

wget -c -O CentOS-Base.repo
http://mirrors.163.com/.help/CentOS6-Base-163.repo

yum list
注:搭建本地Yum仓库,参考这里:http://jcenter.idcos.com/?/article/28
 
3.1.3 安装EPEL源

cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包,确保epel-release包的版本为最新
Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fed ... h.rpm

  • 安装

rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm'

yum update (升级所有包,改变软件设置和系统设置,系统版本内核都升级)

yum upgrade (升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变)

  • 检查是否安装

yum list|grep -E "^epel"

epel-release.noarch 6-8 installed
3.1.4 关闭Selinux和iptables防火墙
  • 关闭防火墙

#Cobbler会使用到好几个端口,为了简化,直接把iptables关闭
chkconfig ip6tables off
chkconfig iptables off
/etc/init.d/ip6tables stop
/etc/init.d/iptables stop

  • 关闭Selinux

sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config

  • 重启系统生效

reboot
3.2 Cobbler安装和配置

3.2.1安装Cobbler
  • 安装Cobbler包(需要支持web,则安装cobbler-web)

yum install -y cobbler cobbler-web

  • 安装Cobbler相关包

yum install -y tftp-server xinetd dhcp httpd rsync

  • 安装运行Cobbler需要的软件包

yum install -y pykickstart debmirror python-ctypes cma
注:
  • 如果要部署debian/ubuntu系统,则需要debmirror软件包;
  • 想使用电源管理功能的话需要安装cman或fence-agents;
  • 如果需要管理DNS,这需要安装bind软件包;
  • 打开服务需要使用的端口如下:

  1. udp ———> 69 ———> tftp
  2. udp ———> 53 ———> dns
  3. tcp ———> 80/443 ———> web【http】
  4. dhcp ———> 67 68

 
  • 启动Cobbler

/etc/init.d/cobblerd start

  • 启动完后,cobbler check命令检查错误【以下是常见错误】

cobbler check
The following are potential configuration items that you may want to fix:
#错误指出我们的cobbler不应该是本地的IP地址,而是一个可以被解析的hostname或者IP

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
#错误指出next_server的IP地址不应该是127.0.0.1的主机地址,而应该是一个真正的tftp服务器地址

2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
#错误是不一定要联网下载某些程序,而安装syslinux就可以;【安装完syslinux 问题依旧,可直接忽略...】

3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
#更改tftp和rsync由cobbler管理

4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
#debmrror没有定义好,yum install 安装即可

5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
#需要额外安装pykickstart

6 : ksvalidator was not found, install pykickstart
#cobbler安装完成后的管理员密码需要替换,因为所有安装后的密码都是一致的

7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
#没有fencing设备,为可选的

8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
Restart cobblerd and then run 'cobbler sync' to apply changes.
3.2.2配置Cobbler

3.2.2.1设置HTTP服务
  • 修改HTTP配置文件

vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1:80

  • 启用wsgi模块【失败—可忽略】
  • 需要确认mod_wsgi已经正确安装,否则需要手动安装yum -y install mod_wsgi

rpm -qa |grep wsgi #检查
mod_wsgi-3.2-7.el6.x86_64

  • 启用wsgi模块只需要取消/etc/httpd/conf.d/wsgi.conf文件中 LoadModule wsgi_module modules/mod_wsgi.so 行的注释

sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf
cat /etc/httpd/conf.d/wsgi.conf #查看
LoadModule wsgi_module modules/mod_wsgi.so
3.2.2.2配置tftp和rsync

修改rsync和tftp这两个服务的xinetd配置,只需修改rsync和tftp的配置文件,讲disable = yes 修改为 disable = no来开启tftp 和 rsync 服务的开机自启动
sed -i 's/ disable = yes/ disable = no/' /etc/xinetd.d/tftp
sed -i 's/ disable = yes/ disable = no/' /etc/xinetd.d/rsync
/etc/init.d/xinetd restart
3.2.2.3 配置cobbler主配置文件

在启动Cobbler服务之前,你需要修改一些配置文件。在修改每一个文件之前最好先备份下当前的文件。

Cobblerd的配置文件为/etc/cobbler/settings ,这个文件是YAML信息的格式文件。

根据需要修改 cobbler主配置文件: /etc/cobbler/settings

Server 和 Next_Server
  • server 选项设置IP用于为cobbler 服务器指定地址,请不要使用0.0.0.0,设置一个你希望和cobbler服务器通过http和tftp等协议链接的IP

sed -i 's/server: 127.0.0.1/server: 192.168.21.128/g' /etc/cobbler/settings

  • next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP

sed -i 's/next_server: 127.0.0.1/next_server: 192.168.21.128 /g' /etc/cobbler/settings

  • 修改后,查看结果

grep -E "^server|next_server" /etc/cobbler/settings
next_server: 192.168.16.130
server: 192.168.16.130
3.2.2.4 Cobbler管理rsync 和 dhcp服务

为了pxe的启动,需要一个DHCP服务器地址,并直接引导系统,它可以在网络中下载引导文件到TFTP的服务器,cobbler可以通过manage_dhcp的设置来进行管理,让cobbler来管理dhcp服务,在做自定义配置时,需要修改dhcp相关配置,以配合PXE启动用,编辑文件/etc/cobbler/settings 
  • manage_dhcp: 1 (注:默认为0,表示不进行管理dhcp服务,可以修改为1,对其进行管理。此为使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync]) 默认为0,不对rsync进行管理,可以修改为1 进行管理

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/setting

  • 修改后,查看结果

grep -E "^manage_dhcp|^manage_rsync" /etc/cobbler/settings
manage_dhcp: 1
manage_rsync: 1
3.2.3 配置cobbler的web环境
  • 修改认证文件

grep "module = authn_configfile" /etc/cobbler/modules.conf
module = authn_configfile # 修改认证方式为密码文件类型

  • 用户和密码

htdigest /etc/cobbler/users.digest "Cobbler" tech
#添加tech用户,提示输入2遍密码确认
Adding user tech in realm Cobbler
New password: 123123 # 这里我设置的密码是 123123
Re-type new password: 123123

  • 生成cobbler安装系统root初始密码

openssl passwd -1 -salt 'random-phrase-here' ' 1234567890' # 该密码是用来登录通过cobbler安装后新机器的密码
$1$random-p$RkqDMTpuNlZZhJ7moLn3Q

  • 将上面的加密串加入cobbler配置文件中

vim /etc/cobbler/settings
#修改为如下配置
default_password_crypted: " $1$random-p$RkqDMTpuNlZZhJ7moLn3Q."

  • 查看

grep "default_password" /etc/cobbler/settings
default_password_crypted: " $1$random-p$RkqDMTpuNlZZhJ7moLn3Q."
3.2.4 配置dhcp与cobbler相关服务
  • 做任何修改操作前,先备份

cp /etc/cobbler/dhcp.template{,.bak}
ll /etc/cobbler/dhcp.template*
-rw-r--r-- 1 root root 2946 Jul 18 2014 /etc/cobbler/dhcp.template
-rw-r--r-- 1 root root 2946 Jul 7 17:01 /etc/cobbler/dhcp.template.bak

  • 修改dhcp配置文件

vim /etc/cobbler/dhcp.template 

ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;# 需要修改192.168.16.0为自己网段
subnet 192.168.16.0 netmask 255.255.255.0 {
option routers 192.168.16.1; # 修改自己的路由
option domain-name-servers 8.8.8.8; # 域名服务器地址
option subnet-mask 255.255.255.0; # 子网掩码
range dynamic-bootp 192.168.16.140 192.168.16.250;#指定IP范围
filename "/pxelinux.0";
default-lease-time 21600; #缺省租约时间
max-lease-time 43200; #最大租约时间
next-server 192.168.16.130; #指定引导服务器【cobbler服务器IP】
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}
}
其余部分维持现状,将上述内容拷贝到/etc/dhcp/dhpcd.conf里。
  • 设置debmirror

#注释掉@dists和@arches的行
sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf
sed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf

  • 下载引导操作系统文件

#加载部分缺失的网络boot-loaders
cobbler get-loaders

  • 检查Cobbler配置

cobbler check  

The following are potential configuration items that you may want to fix:
#dhcpd没有运行
1 : service dhcpd is not running
#执行cobbler get-loaders 系统将自动下载loader程序
2 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.

Restart cobblerd and then run 'cobbler sync' to apply changes

  • DHCP启动成功后,执行sync同步得到如下结果表示成功

cobbler sync

task started: 2014-12-29_184104_sync
task started (id=Sync, time=Mon Dec 29 18:41:04 2014)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/CentOS6.6-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/CentOS6.6-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
copying: /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
copying: /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying: /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying distros to tftpboot
copying files for distro: CentOS6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS6.6-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS6.6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS6.6-x86_64/initrd.img
Writing template files for CentOS6.6-x86_64
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS6.6-x86_64
cleaning link caches
rendering Rsync files
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]

received on stderr:
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE *** → 出现此行提示,表示sync同步dhcp成功
3.2.5重启cobbler和更新相关配置
  • 重启服务

/etc/init.d/cobblerd restart

  • 同步最新cobbler配置,它会根据配置自动修改dhcp,bind等服务,因此我称之为容器的原因

cobbler sync # 同步配置文件到dhcp服务器

  • 启动相关服务并设置开机启动

chkconfig httpd on
chkconfig xinetd on
chkconfig cobblerd on
chkconfig dhcpd on
/etc/init.d/httpd restart
/etc/init.d/xinetd restart
/etc/init.d/cobblerd restart
/etc/init.d/dhcpd restart

  • 设置Cobbler相关服务启动脚本

 
vim /etc/init.d/coobler

#!/bin/sh
# chkconfig: - 80 90
# description:cobbler
case $1 in
start)
/etc/init.d/httpd start
/etc/init.d/xinetd start
/etc/init.d/dhcpd start
/etc/init.d/cobblerd start
;;
stop)
/etc/init.d/httpd stop
/etc/init.d/xinetd stop
/etc/init.d/dhcpd stop
/etc/init.d/cobblerd stop
;;
restart)
/etc/init.d/httpd restart
/etc/init.d/xinetd restart
/etc/init.d/dhcpd restart
/etc/init.d/cobblerd restart
;;
status)
/etc/init.d/httpd status
/etc/init.d/xinetd status
/etc/init.d/dhcpd status
/etc/init.d/cobblerd status
;;
sync)
cobbler sync
;;
*)
echo "Input error,please in put 'start|stop|restart|status|sync'!";
exit 2>&1 >/dev/null &
;;
esac
EOF

  • 添加脚本执行权限

chmod +x /etc/rc.d/init.d/cobbler

  • 添加开机启动

chkconfig cobbler on

  • 重启

cobblerservice cobbler restart

  • 挂载系统安装镜像到http服务器站点目录

  1. 上传ISO镜像到服务器的/server/iso/目录
  2. 创建目录/var/www/html/os/{CentOS-6.6-x86_64}

mkdir -p /var/www/html/os/CentOS-6.6-x86_64    # 创建挂载目录
提示:如果是本地iso镜像则挂载用 loop方式; 如果是挂载光盘则直接挂载到指定目录即可
mount -t iso9660 -o loop /root/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.6-x86_64/

mount /dev/cdrom /var/www/html/os/CentOS-6.6-x86_64/
挂载完之后,要编辑开机自挂载项
vi /etc/fstab
/server/iso/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.6-x86_64 iso9660 defaults 0 0
或者
/dev/cdrom /var/www/html/os/CentOS-6.6-x86_64 iso9660 defaults 0 0
备注:
  • iso9660使用df -T 查看设备 卸载:umount /var/www/html/os/CentOS-6.5-x86_64
  • 重复上面的操作,把自己需要安装的CentOS系统镜像文件都挂载到/var/www/html/os/目录下

 
  • 例如: CentOS-5.10-x86_64-bin-DVD-1of2.iso CentOS-7.0-1406-x86_64-DVD.iso

 
 导入系统镜像到cobbler

从DVD中导入客户端的OS; 将自动设置了“x86_64”,并将其命名为CentOS6.6-x86_64,导入需要时间,可查看/var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/目录文件生成情况
cobbler import --path=/var/www/html/os/CentOS-6.6-x86_64 --name=CentOS-6.6-x86_64 --arch=x86_64 
命令格式:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64位
参数说明:
--name 为安装源定义一个名字
--arch 指定安装源是32位还是64位、ia64, 目前支持的选项有: x86│x86_64│ia64
导入成功的结果如下:
task started: 2014-12-28_214043_import
task started (id=Media import, time=Sun Dec 28 21:40:43 2014)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64:
creating new distro: CentOS-6.6-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64 -> /var/www/cobbler/links/CentOS-6.6-x86_64
creating new profile: CentOS-6.6-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
sta将需要安装系统的服务器网卡启用 PXE,启动服务器从 PXE 引导 默认从本地硬盘引导,可以修改,建议还是保持此默认 rting descent into /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64 for CentOS-6.6-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/repodata
*** TASK COMPLETE ***
四、安装系统
 
4.1 命令行安装
 
将需要安装系统的服务器网卡启用 PXE,启动服务器从 PXE 引导 默认从本地硬盘引导,可以修改,建议还是保持此默认

选择对应的系统即可安装:
15.png

 
4.2 Web安装
 
Cobbler web 界面是一个很好的前端,非常容易管理 Cobbler,可以添加和删除 system distro profile,可 以 查 看 、 编 辑 distros, profiles,subprofiles, systems, repos 、 kickstart 文件 。
 
浏览器访问登录页面https://ip/cobbler_web ,输入用户名密码即可

screenshot_2.png

 
登录后的页面

screenshot.png

 
web 管理相对易于使用管理这里就不再赘述。 
 
====>Cobbler就介绍到这里了,详情可参见官方网站:https://cobbler.github.io/manuals/2.6.0/