Loda Doc
1 系统功能模块
系统各个功能模块如下:
Server模块:提供API服务,包括数据录入查询等,对接UI模块和agent模块
BootOS模块:提供一个临时内存的OS,便于完成硬件配置
Agent模块: 内置在bootOS中,完成与server的数据交互,配置初始化机器,数据上报
说明:本系统基于开源项目idcos演化而来( Apache License ),感谢他们对社区的贡献。
Loda与原有系统对比:
- 精简架构和代码
- 支持LDAP
- 抛弃以rpm下发配置的方式,基于git进行版本管理,易于维护
- 完善log上报
- 部分bug逻辑优化
2 服务部署安装
本文以CentOS 6.7 为例进行部署。
2.1 安装DHCP服务
执行下列命令进行安装,并设置成开机启动
yum install dhcp
chkconfig dhcpd on
配置dhcp服务,请用户根据自己的实际情况修改网段:
vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style none;
ping-check true;
ping-timeout 3;
default-lease-time 1800;
max-lease-time 3600;
next-server 192.168.0.1;
filename "gpxelinux.0";
option domain-name-servers 192.168.0.1;
option domain-search "idcos.net";
option root-path "192.168.0.1:/";
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.200;
option routers 192.168.0.1;
}
说明:
- next-server 指向tftp服务器,默认是本机ip
- domain-name-servers 指向dns服务器,默认是本机ip
- domain-search dns搜索域,请根据实际情况修改
- root-path 指向客户端的根路径,默认是本机ip
- subnet 分配的dhcp网段,请根据实际情况修改
2.2 安装tftp服务
执行下列命令进行安装,并设置成开机启动
yum install tftp-server syslinux-tftpboot
chkconfig xinetd on
配置tftp服务,设定tftp根目录为/var/lib/tftpboot,设置 disable = no
vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
修改default文件,默认引导bootOS文件
2.3 安装http服务
HTTP服务主要是用来拉取系统镜像,如果已经有现成的HTTP服务,可以跳过这一步。只要把解压的iso镜像文件能通过http访问到就行。
安装nginx服务并设置为开机启动
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx
chkconfig nginx on
下载系统安装介质,以centos 6.7为例,需要下载ISO文件并导入http目录。
mkdir -p /home/www/iso /home/www/centos/6.7/os/x86_64/
wget -c -P /home/www/iso http://mirrors.aliyun.com/centos/6.7/isos/x86_64/CentOS-6.7-x86_64-bin-DVD1.iso
mount -o loop /home/www/iso/CentOS-6.7-x86_64-bin-DVD1.iso /media
rsync -az /media/ /home/www/centos/6.7/os/x86_64/
umount /media
将bootOS的两个文件也放置在web目录中,确定能通过HTTP访问到,确保这里访问bootOS的地址和前面配置的default文件的位置是一样的。
2.4 安装mongoDB服务
mongoDB用于存储server端的所有数据,大家可以安装epel的repo或则10gen的repo通过yum缘进行安装。
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm```
yum install mongodb-server -y
安装完了,记得根据自己的情况修改下配置文件,监听地址和端口什么的,配置文件默认位置:/etc/mongodb.conf
,
最后启动mongoDB服务: /etc/init.d/mongod start
2.5 部署server程序
server程序包含一个二进制的可执行程序和一个配置文件。
将配置文件复制到 /etc/ 下:
mv loda-server.conf.sample /etc/loda-server.conf
server会默认读取/etc/loda-server.conf这个配置文件,-f 可以指定配置文件。
配置文件:
[common]
//监听地址和端口
listen = "0.0.0.0:9999"
//获取配置脚本的git仓库
gitaddr = "https://git.baidu.com/loda-tools/%s.git"
//tftp pxe目录
pxeconfigdir = "/var/lib/tftpboot/pxelinux.cfg"
[ldap]
server = "172.30.123.234:389"
binddn = "ldap_dn"
password = "password"
uid = "sAMAccountName"
base = "OU=技术部,DC=staff,DC=baidu,DC=com"
//数据库配置
[db]
host = "127.0.0.1"
port = "27017"
name = "loda"
user = ""
pass = ""
//log设置
[log]
logdir = "/var/logs/loda-server"
# 日志级别支持(从低到高) DEBUG INFO WARNING ERROR FATAL , 日志输出会输出>= 配置级别内容
loglevel = "DEBUG"
logrotatenum = 3
logrotatesize = 104857600
启动server程序: ./loda-server start &
检查log和系统监听端口,查看是否启动成功:
2016/03/10 16:51:23 listening on 0.0.0.0:9999 (development)
tcp 0 0 :::9999 :::* LISTEN 28910/./src/loda-server
OK,服务启动成功!
停止服务 执行下面命令
./loda-server stop