码迷,mamicode.com
首页 > 其他好文 > 详细

阶段性总结servers

时间:2018-05-01 23:27:43      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:dns pxe cobbler rsyn

Services01(较杂乱的小点)

搭建环境

1.创建两台虚拟机
2.将两台虚拟机,修改名字,一个取名A  一个取名B
    设置虚拟机A
            为eth0IP地址:192.168.4.7/24
            永久的主机名:svr7.tedu.cn
     设置虚拟机B
            为eth0IP地址:192.168.4.207/24
            永久的主机名:pc207.tedu.cn
3.真机远程管理两台虚拟机
4.Yum仓库的设置
    真机搭建Web服务,共享光盘所有内容(开机自动挂载)
    1.将所有的loop设备全部卸载
    2.mount -a
      df -h     #查看是否挂载成功
    3.scp直接拷贝到配置文件(A->B)

Yum仓库
1)网络yum
baseurl为网络服务(web,ftp,nfs等)
2)本地yum
baseurl为本地镜像(iso光盘,iso9660开机自动挂载)
3)自定义yum
1.具备非光盘的软件包
将真机的数据传递给虚拟机A
scp /路径/源文件 root@IP地址 :/路径/
scp /root/桌面/tools.tar.gz root@192.168.4.7:/root/ (密码验证,如果传了公钥可以免交互)
2.虚拟机A上,tar解包到根目录下
tar -xf /root/tools.tar.gz -C /
ls /tools/other/
3.建立仓库数据文件
createrepo /tools/other/
ls /tools/other/repodata/
4.虚拟机追加写入一个仓库 /tools/other 是一个仓库
vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0

             [other]
             name=hahaxixi
             baseurl=file:///tools/other     #指定本机为Yum仓库
             enabled=1
             gpgcheck=0
     5.yum repolist     刷新仓库

     6.几个测试软件       sl  cmatrix     oneko& #放入后台运行

目录结构
认识Linux的目录层次:
– man hier

常见一级目录的用途
主要用途
/boot 存放系统引导必需的文件,包括内核、启动配置
/bin、/sbin 存放各种命令程序
/dev 存放硬盘、键盘、鼠标、光驱等各种设备文件
/etc 存放Linux系统及各种程序的配置文件
/root、/home/用户名 分别是管理员root、普通用户的默认家目录
/var 存放日志文件、邮箱目录等经常变化的文件
/proc 存放内存中的映射数据,不占用磁盘
/tmp 存放系统运行过程中使用的一些临时文件

权限的数值表示
权限的数值化
– 基本权限:r = 4,w = 2,x = 1
chmod 755 /nsd01
– 附加权限:SUID = 4,SGID = 2,Sticky Bit = 1
历史命令
管理/调用曾经执行过的命令
– history:查看历史命令列表
– history -c:清空历史命令
– !str:执行最近一次以str开头的历史命令
调整历史命令的数量
vim /etc/profile
HISTSIZE=1000 //默认记录1000条
!ls #执行最近一条历史命令以ls开头的
统计目录的大小
du -sh /boot/
zip归档工具,跨平台的压缩工具
命令格式: zip -r /路径/压缩包名 /路径/被压缩的源文件

    zip -r /root/test.zip   /home/  /mnt/  /etc/passwd

命令格式: unzip /路径/压缩包名 -d /释放的路径
unzip /root/test.zip -d /opt
软连接与硬连接,快捷方式

制作快捷方式:  ln  -s   /路径/源文件     /路径/快捷方式的名字
    ln -s  /etc/redhat-release       /abc
 i节点: 编号标识硬盘的一块存储区域
ln,创建软连接
    – 软连接 --> 原始文档 --> i节点 --> 文档数据
    – ln -s  原始文件或目录   软连接文件
     若原始文件或目录被删除,连接文件将失效
     软连接可存放在不同分区/文件系统
ln,创建硬连接
    – 硬连接 --> i节点 --> 文档数据
    – ln  原始文件   硬连接文件
    若原始文件被删除,连接文件仍可用
    硬连接与原始文件必须在同一分区/文件系统
         echo 123 > /opt/A
         cat  /opt/A
         ln -s /opt/A   /opt/B   #软连接
         ln  /opt/A   /opt/C     #硬连接
         ls -i  /opt/       查看i节点
         rm -rf /opt/A   #当删除源文件,只有硬连接可用
         ls -i  /opt/

wc 统计命令 (别名为wc -lcm 行 字节 字符)

 wc -l : 只统计行数
 请统计/etc/以 .conf结尾的文件有多少个(包含子目录)
 find /etc/ -name  "*.conf"  |  wc -l

vim文本编辑器

光标跳转
Home 跳转到行首
End 跳转到行尾
1G 或 gg 跳转到文件的首行
G 跳转到文件的末尾行
12G 跳转到文件的第12行

复制/粘贴/删除

复制 yy、#yy    复制光标处的一行、#行
粘贴 p         粘贴到光标处之后
x 或 Delete键      删除光标处的单个字符
dd、#dd       删除光标处的一行、#行
d^       从光标处之前删除至行首
d$       从光标处删除到行尾
C(大写)          从光标处删除到行尾,并且进入插入模式
u                撤销上一次操作

查找/撤销/保存

/word        向后查找字符串“word”
n、N          跳至后/前一个结果
u        撤销最近的一次操作
Ctrl + r     取消前一次撤销操作(反撤销)
ZZ(大写)       保存修改并退出

末行模式操作

:r /etc/filesystems 读入其他文件内容

字符串替换

:s/root/admin        替换光标所在行第一个“root”
:s/root/admin/g      替换光标所在行所有的“root”
:1,10s/root/admin/g  替换第1-10行所有的“root”
:%s/root/admin/g     替换文件内所有的“root

开关参数的控制

:set  nu|nonu   显示/不显示行号
:set  ai|noai   启用/关闭自动缩进

补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)
vim 默认配置文件 ~/.vimrc
初始化vim操作,每次使用vim命令首先执行的内容
set nu #开启行号
set ai #启用自动缩进
set tabstop=2 #一个tab键等于 两个空格
systemctl控制

服务的控制

 开启服务  systemctl  start  服务名
 停止服务  systemctl  stop   服务名
 重起服务  systemctl  restart  服务名

 设置开机自起             systemctl  enable   服务名
 设置开机不自起            systemctl  disable  服务名
 查看当前是不是开机自起        systemctl  is-enabled  服务名

模式的控制

纯文本字符模式 :    multi-user.target 
图形模式  :  graphical.target

当前切换模式
#systemctl isolate graphical.target #切换到图形模式
#systemctl isolate multi-user.target #切换到字符模式

修改默认进入的模式
#systemctl get-default #查看默认进入的模式
#systemctl set-default graphical.target #修改默认的模式
#systemctl get-default
#reboot #重起验证
源码编译安装

rpm包:rpm yum 简单 不灵活

      利用gcc与make

源码包---------------------->可以执行的程序 ---------->运行安装

 灵活,功能与安装位置 可以自由选择

源码包编译安装:

步骤1:安装gcc与make编译开发工具
    gcc make
步骤2:tar解包,释放源代码至指定目录
    tar -xf /tools/inotify-tools-3.13.tar.gz -C /mnt/
    ls /mnt/
    cd /mnt/inotify-tools-3.13/
步骤3:  ./configure 配置,指定安装目录/功能模块等选项
                         作用1:检测系统是否安装gcc
                         作用2:功能与安装位置 可以自由选择 
        --prefix= 指定安装位置

    cd /mnt/inotify-tools-3.13/
    ./configure  --prefix=/opt/myrpm

常见报错:没有安装gcc
checking for gcc... no
checking for cc... no
checking for cl.exe... no

步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录
验证:
    ls /opt/
    ls /opt/myrpm/
    ls /opt/myrpm/bin/

Services02

DNS服务基础:
    域名解析   只负责将域名解析ip地址
DNS服务器的功能
    – 正向解析:根据注册的域名查找其对应的IP地址
    – 反向解析:根据IP地址查找对应的注册域名,不常用
所有完整的域名都要以点结尾:  www.qq.com.   www.baidu.com.

                        .   根域    

一级域名:   .cn    .us    .hk    .tw   .kr  .com  .net 

二级域名:     .com.cn   .net.cn   .org.cn .edu.cn ......

三级域名:    nb.com.cn  dawai.com.cn   haha.com.cn  haxi.com.cn

Full Qualified Domain Name,完全合格主机名(FQDN)

– 系统服务: named
– 默认端口: 53
– 运行时的虚拟根环境:/var/named/chroot/(遇到攻击时会被困到这个目录下)

主配置文件:/etc/named.conf #设置本机负责解析的域名 tedu.cn
地址库文件:/var/named/ #主机名与IP地址的对应记录

搭建基本的DNS服务
解析tedu.cn
服务端:虚拟机A
1.安装一个可以提供域名解析的软件
bind-chroot 提供虚拟根支持,牢笼政策
bind 域名服务包
2.修改主配置文件/etc/named.conf
options {
directory "/var/named";}; #设置地址库文件路径
zone "tedu.cn" IN { #设置负责解析的域名
type master; #设置本机为主DNS服务器
file "tedu.cn.zone"; #设置地址库文件名字
};
3.建立地址库文件/var/named/tedu.cn.zone
cp -p /var/named/named.localhost /var/named/tedu.cn.zone -p:权限不变进行拷贝

    vim  /var/named/tedu.cn.zone
    tedu.cn.      NS      svr7         #指定本区域DNS服务器
    svr7          A       192.168.4.7  #指定DNS服务器的IP地址
    www           A       1.1.1.1
    ftp           A       2.2.2.2

4.重起服务
客户端:虚拟机B
验证DNS解析
     #echo nameserver 192.168.4.7 > /etc/resolv.conf 
     #nslookup   www.tedu.cn  #测试域名解析

搭建多区域的DNS

解析qq.com域名
1.修改主配置文件(追加写入)
zone  "qq.com"  IN  {          
    type master;               
    file "qq.com.zone";        
};
2.建立地址库文件 /var/named/qq.com.zone(新建)
qq.com.       NS      svr7        
svr7          A       192.168.4.7  
www           A       30.30.30.30
ftp           A       4.4.4.4

特殊的解析记录

一、DNS的轮询 (简单的负载均衡)
虚拟机A:
vim /var/named/tedu.cn.zone
tedu.cn.        NS      svr7
svr7            A       192.168.4.7
www             A       192.168.4.10
www             A       192.168.4.20
www             A       192.168.4.30
ftp             A       2.2.2.2

systemctl restart named
虚拟机B:验证
ping -c 1 www.tedu.cn
ping -c 1 www.tedu.cn
ping -c 1 www.tedu.cn
二、泛域名解析
虚拟机A:
vim /var/named/tedu.cn.zone
*               A       10.20.30.40
tedu.cn.        A       50.60.70.80

systemctl restart named
虚拟机B:
nslookup   haha.tedu.cn
nslookup   xixi.tedu.cn
nslookup   tedu.cn
三、有规律的泛域名解析
    stu1.tedu.cn--------》192.168.10.1
        stu2.tedu.cn--------》192.168.10.2
        stu3.tedu.cn--------》192.168.10.3
        ......
        stu50.tedu.cn--------》192.168.10.50
    $GENERATE 造数工具 
虚拟机A:
    vim /var/named/tedu.cn.zone

     *               A       10.20.30.40
     tedu.cn.        A       50.60.70.80
    $GENERATE  1-50  stu$   A  192.168.10.$
systemctl restart named
虚拟机B:
    nslookup  stu32.tedu.cn
    nslookup  stu50.tedu.cn
    nslookup  stu51.tedu.cn
四、解析记录的别名
虚拟机A:   
    vim /var/named/tedu.cn.zone
    tts            CNAME    ftp
    systemctl restart named
虚拟机B:

    nslookup  tts.tedu.cn
    nslookup  ftp.tedu.cn

DNS子域授权
向 父域的DNS虚拟机A 解析 子域的域名 可以得到 虚拟机B 的结果

           父域:   www.tedu.cn    虚拟机A

           子域:  www.bj.tedu.cn  虚拟机B
一、虚拟机B  搭建子域的DNS

    1.bind-chroot bind
    2.修改主配置文件/etc/named.conf
    options {
    directory   "/var/named";    
};
zone  "bj.tedu.cn"  IN  {         
    type master;                
    file "bj.tedu.cn.zone";     
};
    3. 建立地址库文件/var/named/bj.tedu.cn.zone
    cp -p /var/named/named.localhost /var/named/bj.tedu.cn.zone
    vim  /var/named/bj.tedu.cn.zone     (追加写入,不要管关于主从dns的配置)
    bj.tedu.cn.      NS       pc207        
    pc207             A       192.168.4.207  
    www               A       1.2.3.4

    4.systemctl restart named   #重起服务
二、虚拟机A:父域
    1.修改地址库文件/var/named/tedu.cn.zone
    tedu.cn.        NS      svr7
    bj.tedu.cn.     NS      pc207
    svr7            A       192.168.4.7
    pc207           A       192.168.4.207
    2.重起named服务
测试验证    nslookup www.bj.tedu.cn 192.168.4.7
        Server:     192.168.4.7
        Address:    192.168.4.7#53

        Non-authoritative answer:   #非权威解答
        Name:   www.bj.tedu.cn
        Address: 1.2.3.4

DNS解析过程:
递归解析:指DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程 (客户端--》dns服务器为递归)
迭代解析:指DNS服务器与其他DNS服务器交互,最终将告知下一个DNS服务 (dns服务器到根域查询为迭代)
验证迭代查询
dig命令,更专业的DNS测试工具 (host,nslookup总共三个dns查询命令)

缓存DNS
作用:缓存解析结果,提高解析速度

搭建方式:
1.全局转发,所有的DNS解析请求全部转发给公网DNS
2.根域迭代,所有的DNS解析请求全部发给根域DNS服务器

真机上实现缓存DNS服务器
bind bind-chroot
cat /etc/resolv.conf
修改配置文件/etc/named.conf
options {
directory "/var/named";
forwarders { 172.40.1.10; }; #转发给172.40.1.10
};
(相当于把所有解析请求都转给真机的dns服务器,而真机搭的这个dns服务,
只起到缓存真机所用的dns服务器的解析结果)
真机作为服务端时,收到的客户端请求全都给真机作为客户端时的服务端dns
而自己只做缓存记录供给自己的客户端做解析。
systemctl restart named
在虚拟机上解析
nslookup www.qq.com 192.168.4.254
nslookup www.360.com 192.168.4.254

Services03

DNS分离解析

当收到客户机的DNS查询请求的时候
– 能够区分客户机的来源地址
– 为不同类别的客户机提供不同的解析结果(IP地址)
– 根据客户端的不同,解析同一个域名,得到的解析结果不同

– 目的:为客户端提供网络最近的服务器资源
    (电信ip解析请求解析成电信服务器ip,联通ip解析请求解析成联通服务器ip)
    (成都的ip解析请求解析成成都本地最近服务器ip)
环境及需求
– 权威DNS:svr7.tedu.cn 192.168.4.7
– 负责区域:sina.com

– A记录分离解析 —— 以 www.sina.com 为例

客户机来自 解析结果
    192.168.4.207 --------》 192.168.4.100

    其他地址 --------》 1.2.3.4

解析原则:
1.由上到下依次匹配, 匹配及停止
2.使用view时,所有的客户端都必须在分类中
3.所有的zone都必须在view中
4.每一个view中的zone必须相同

    虚拟机A
        1.bind-chroot bind
        2.修改主配置文件/etc/named.conf
        options {
        directory   "/var/named";    
        };
        acl test { 192.168.4.207;  };   acl地址列表  简化match-clients匹配
        view "nsd" {
        match-clients {   test;   };
            zone "sina.com" IN {
                type master;
                file "sina.com.nsd";
         };
         };

        view "other" {
        match-clients {    any;    };
            zone "sina.com" IN {
                  type master;
                 file "sina.com.other";
         };
         };

        3.建立sina.com.nsd、sina.com.other 地址库文件 , 写入不同的解析结果
        sina.com.nsd 解析结果为 192.168.4.100
        sina.com.other 解析结果为 1.2.3.4

补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)
vim 默认配置文件 ~/.vimrc
初始化vim操作,每次使用vim命令首先执行的内容
set nu #开启行号
set ai #启用自动缩进
set tabstop=2 #一个tab键等于 两个空格

DNS分离解析综合实验:

虚拟机C搭建Web服务器
1.安装httpd

2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163
#echo woshi Web1 QQ > /var/www/qq/index.html
#echo woshi Web1 163 > /var/www/163/index.html

#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost
:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>

虚拟机D搭建Web服务器
1.安装httpd

2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163
#echo woshi Web2 QQ > /var/www/qq/index.html
#echo woshi Web2 163 > /var/www/163/index.html

#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost
:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>

################################################
实现的效果

192.168.4.7-> www.qq.com www.163.com---》Web1(10)

192.168.4.207-> www.qq.com www.163.com---》Web2(20)

在虚拟机A搭建DNS分离解析
view "nsd" {
match-clients { 192.168.4.7; };
zone "qq.com" IN {
type master;
file "qq.com.nsd";
};
zone "163.com" IN {
type master;
file "163.com.nsd";
};
};

view "other" {
match-clients { any; };
zone "qq.com" IN {
type master;
file "qq.com.other";
};
zone "163.com" IN {
type master;
file "163.com.other";
};
};

指定DNS服务器

#echo nameserver 192.168.4.7 > /etc/resolv.conf

RAID磁盘管理
廉价冗余磁盘阵列
– Redundant Arrays of Inexpensive Disks

– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘

– 阵列的价值:提升I/O效率、硬件级别的数据冗余
– 不同RAID级别的功能、特性各不相同

RAID 0,条带模式
– 同一个文档分散存放在不同磁盘
– 并行写入以提高效率,无容错功能
– 至少由2块磁盘组成

RAID 1,镜像模式
– 一个文档复制成多份,分别写入不同磁盘
– 多份拷贝提高可靠性,效率无提升
– 至少由2块磁盘组成

RAID5,高性价比模式
– 相当于RAID0和RAID1的折中方案
– 需要至少一块磁盘的容量来存放校验数据
– 至少由3块磁盘组成

RAID6,高性价比/可靠模式
– 相当于扩展的RAID5阵列,提供2份独立校验方案
– 需要至少两块磁盘的容量来存放校验数据
– 至少由4块磁盘组成

RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的优势
– 并行存取提高效率、镜像写入提高可靠性
– 至少由4块磁盘组成

进程管理

 程序:静态的代码,占用磁盘空间
 进程:动态的代码,会占用 CPU  内存
 进程的唯一标识:PID
 父进程与子进程   树形结构 (某些程序需要干掉其父进程才能干掉他本身)

查看进程树
pstree — Processes Tree
– 格式:pstree [选项] [PID或用户名]

常用命令选项
– -a:显示完整的命令行
– -p:列出对应PID编号

systemd是所有进程的父进程
pstree #显示进程树
pstree lisi #显示用户lisi的进程
pstree -p lisi #显示进程PID
pstree -ap lisi #显示进程完整的信息

ps aux 操作
– 列出正在运行的所有进程

用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令

ps -elf 操作
– 列出正在运行的所有进程 (可以查看其父进程)
PPID:父进程的PID号

进程动态排名
top 交互式工具
– 格式:top [-d 刷新秒数] [-U 用户名]

按 大写的P 按cpu降序
按 大写的M 按内存降序
top -d 1 root 默认看当前用户

ps aux   |  wc  -l   #统计进程数  
ps -elf  |  wc  -l   #统计进程数  

检索进程
pgrep — Process Grep
– 用途:pgrep [选项]... 查询条件

常用命令选项
– -l:输出进程名,而不仅仅是 PID
– -U:检索指定用户的进程
– -t:检索指定终端的进程
– -x:精确匹配完整的进程名
pgrep -l atd
pgrep -l cron
pgrep -lU lisi
pgrep -lU lisi | wc -l
pgrep -lx atd
控制进程
sleep 900 & #正在运行放入后台
jobs #查看后台进程信息
sleep 800
^Z #按Ctrl+z正在运行放入后台
bg 2 #将后台编号为2的进程继续运行
fg 1 #将后台编号为1的进程恢复到前台
杀死进程
– Ctrl+c 组合键,中断当前命令程序
– kill [-9] PID... 、kill [-9] %后台任务编号
– killall [-9] 进程名...
– pkill 查找条件
-9:强制杀
– killall -9 -u 用户名 #杀死该用户开启的所有进程(强制 踢出 一个用户)
日志管理

日志的功能
系统和程序的“日记本”
– 记录系统、程序运行中发生的各种事件
– 通过查看日志,了解及排除故障
常见的日志文件

/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
日志分析

tailf  : 实时跟踪日志信息

– awk、sed等格式化过滤工具
users、who、w 命令
– 查看已登录的用户信息,详细度不同
users、who、w 命令
– 查看已登录的用户信息,详细度不同

last、lastb 命令
– 查看最近登录成功/失败的用户信息
[root@svr7 /]# users
[root@svr7 /]# who
[root@svr7 /]# w
[root@svr7 /]# last -2 #最近登陆成功2条记录
[root@svr7 /]# lastb -2 #最近登陆失败2条记录
Linux内核定义的事件紧急程度
– 分为 0~7 共8种优先级别
– 其数值越小,表示对应事件越紧急/重要

0 EMERG (紧急) 会导致主机系统不可用的情况
1 ALERT (警告) 必须马上采取措施解决的问题
2 CRIT (严重) 比较严重的情况
3 ERR (错误) 运行出现错误
4 WARNING (提醒) 可能会影响系统功能的事件
5 NOTICE (注意) 不会影响系统但值得注意
6 INFO (信息) 一般信息
7 DEBUG (调试) 程序或系统调试信息等

使用journalctl工具 (日报管理)
提取由 systemd-journal 服务搜集的日志
– 主要包括内核/系统日志、服务日志

常见用法
– journalctl | grep 关键词
– journalctl -u 服务名 [-p 优先级]
– journalctl -n 消息条数
– journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS" (从什么时间到什么时间的日志,排错使用)

Services04

DHCP概述及原理 (批量装机时我们才会搭 一般不搭)
Dynamic Host Configuration Protocol
– 动态主机配置协议,由 IETF(Internet 网络工程师任
务小组)组织制定,用来简化主机地址分配管理

主要分配以下入网参数
– IP地址/子网掩码/广播地址
– 默认网关地址、DNS服务器地址

DHCP地址分配的四次会话,通过广播的方式,先到先得
一个网络中不能有多台DHCP(可能会因为相互干扰导致ip混乱,今天我先得到A服务分的ip明天先得到B服务的ip)

1.dhcp
2.vim  /etc/dhcp/dhcpd.conf
末行模式  :r /usr/share/doc/dhcp*/dhcpd.conf.example
subnet  192.168.4.0  netmask 255.255.255.0 {    分配网段及子网
range  192.168.4.100   192.168.4.200;       ip范围
option domain-name-servers 192.168.4.7;     dns服务器
option routers 192.168.4.254;           网关
default-lease-time 600;             默认租约时间
max-lease-time 7200;
}                       最后没有分号
3.systemctl restart dhcpd

什么是PXE网络

PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行
– 可用于远程安装

工作模式
– PXE client 集成在网卡的启动芯片中
– 当计算机引导时,从网卡芯片中把PXE client调入内存
执行,获取PXE server配置、显示菜单,根据用户选
择将远程引导程序下载到本机运行

网络装机服务端需要哪些服务组件?
– DHCP服务,分配IP地址、定位引导程序
– TFTP服务,提供引导程序下载
– HTTP服务,提供yum安装源
网络装机服务器虚拟机A
一、dhcp配置,指定next-server下一个服务器
dhcp

    vim /etc/dhcp/dhcpd.conf 

    next-server 192.168.4.7;
    filename   "pxelinux.0";      #指定网卡引导文件名
    systemctl restart dhcpd

二、搭建tftp服务,传输引导文件
tftp:简单的文件传输协议 端口:69
默认共享路径:/var/lib/tftpboot
tftp-server
systemctl restart tftp
systemctl enable tftp
yum provides */pxelinux.0
#查询仓库哪个软件生成pxelinux.0
yum -y install syslinux

    rpm -ql syslinux      #查看软件包安装清单
        rpm -ql syslinux | grep pxelinux.0 
    cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
    mkdir  /var/lib/tftpboot/pxelinux.cfg       部署菜单文件
    mount  /dev/cdrom   /mnt/           挂载光盘寻找硬件模板                                  cp /mnt/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
 拷贝菜单文件模板           cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img                /mnt/isolinux/splash.png  /var/lib/tftpboot/

ls /var/lib/tftpboot/

    initrd.img(启动驱动程序 )
    vmlinuz(启动内核)  
    pxelinux.0(syslinux程序中复制而来)  
    pxelinux.cfg(目录/default相当于系统引导程序从isolinux.cdg中来)  
    splash.png(背景图片)  
    vesamenu.c32(图形模块)
    vim /var/lib/tftpboot/pxelinux.cfg/default   修改菜单 
         default vesamenu.c32  #加载图形的模块
         timeout 60            #读秒的时间
         .......
         menu background splash.png      #指定背景图片
             menu title PXE Server NSD1803   #指定标题
         .......

        label linux
              menu label Install RHEL7   #显示选项内容
          kernel vmlinuz             #指定启动内核
          append initrd=initrd.img   #指定启动驱动程序
    至此已经集齐6大硬件,所有硬件引导结束)

接下来是软件!!!所以要搭WEB 来共享软件包。
总结:
dhcp----》IP、next-server、pxelinux.0
tftp----》pxelinux.0
pxelinux.0----》default
default----》vesamenu.c32 、vmlinuz、initrd.img

简单测试: 新建一台虚拟机 选择 PXE网络引导 安装
yum -y install httpd

      mkdir /var/www/html/rhel7

      mount /dev/cdrom /var/www/html/rhel7

      systemctl restart httpd

      systemctl enable httpd

      firefox 192.168.4.2/rhel7   (软件环境有了)

配置自动安装的选项 (无人值守)

      yum -y install system-config-kickstart.noarch (无人值守图像配置软件)            
      system-config-kickstart   (检查发现软件包不可用)
      vim /etc/yum.repos.d/BB.repo   
        (bug  源标示要改为development)

选择需要自动安装的选项(大概记住)

      cp /root/ks.cfg /var/www/html/   (配置自动安装软件  所以是放在和http服务中)

      vim /var/lib/tftpboot/pxelinux.cfg/default  (修改引导程序文件,让其自动安装软件包)
         label linux
            menu label Install RHEL7
            menu  default                 #读秒之后默认的选择
            kernel vmlinuz
            append initrd=initrd.img ks=http://192.168.4.7/ks.cfg

tips!: 比较坑的是什么 是这个图形配置文件生成ks.cfg 容易出现问题,和选择的不一样!!!
所以,每次图形界面配完了以后检查一下这个ks.cfg这个配置文件有没有问题!!!!
参照如下配置文件!!!!

Services05

cobbler装机
优势 :自动安装服务,搭好以后只需导入镜像文件即可, 对于安装多操作系统的需求来讲更方便。

基本环境:centos系统作为服务器主机系统

      selinux disabled 

firewall trsuted

      cobbler.zip  解压两次  发现RPM包   一并装上!

yum -y install /Cobbler/cobbler/*.rpm     #装包  (同时装多个包!!!!)
vim /etc/cobbler/settings           #修改主配置文件
vim /etc/cobbler/dhcp.template          #修改dhcp配置文件

tar -tf /Cobbler/cobbler_boot.tar.gz 

tar xPf /Cobbler/cobbler_boot.tar.gz        #保持绝对路径解压!!!

ls /var/lib/cobbler/loaders/            #cobbler服务引导文件默认存放路径

COPYING.elilo     COPYING.yaboot  grub-x86_64.efi  menu.c32    README

COPYING.syslinux
elilo-ia64.efi grub-x86.efi pxelinux.0 yaboot #配置硬件启动所需文件

systemctl restart cobblerd.service 

systemctl enable cobblerd.service  

systemctl restart httpd

systemctl enable httpd

systemctl restart tftp

systemctl enable tftp

systemctl restart rsyncd

systemctl enable rsyncd         #启动各种服务 配置软件!!
cobbler sync                    #刷新cobbler服务

systemctl restart dhcpd
        # 最后才能启dhcp  要刷一次才能使配置生效

    firefox https://192.168.4.180/cobbler_web 测试web     
#验证web

用户cobbler 密码cobbler 进入web的图形配置界面
cobbler import --path=挂载点 --name=导入系统命名(随意起)--arch=x86_64 版本架构
导入安装镜像数据

mount /dev/cdrom  /dvd
                    (挂载读取第一个镜像)
cobbler import --path=/dvd  --name=CentOS7

--arch=x86_64 (写入第一个镜像)
mount /iso/rhel-server-7.4-x86_64-dvd.iso /rhel7/
(换个镜像挂载)
cobbler import --path=/rhel7 --name=RedHat7 --arch=x86_64 (写入第二个镜像) 可以装机了。
cobbler list #查看有哪些系统

    cobbler profile report   #查看cobbler导入信息

    killall  -9 dnsmasq  #虚拟化服务会干扰DHCP服务

cobbler导入的镜像放在:/var/www/cobbler/ks_mirror

root的默认密码为cobbler
修改默认cobbler密码:
openssl passwd -1 -salt ‘random-phrase-here‘ ‘111‘ 111是自己想要修改的密码!!!

vim /etc/cobbler/settings
default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac." 替换为刚刚生产的MD5
只需要重启cobblerd 这个服务就行了。
(重启之后看一下http中的ks文件中的rootpw 这行发生了改变没有就能验证了,这 个发生了个改变就证明密码已经设置好了!!!)

tips:
cobbler服务的默认引导文件还是 /var/lib/tftpboot/pxelinux.cfg/default(和pxe一样)
ipappend 2

LABEL rhel6-x86_64

kernel /images/rhel6-x86_64/vmlinuz

MENU LABEL rhel6-x86_64

append initrd=/images/rhel6-x86_64/initrd.img ksdevice=bootif lang= kssendmac text              ks=http://192.168.4.100/cblr/svc/op/ks/profile/rhel6-x86_64
    ks文件在这里可以看到
ipappend 2

MENU end
firefox

http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
这里的访问路径是作了很多此跳转之后的路径

默认的ks文件是在这里!!!
上面的defualt引导文件也有写ks的位置在这里,这个文件是会随着主配置文件变化的。
因为里面的rootpw都是用的 $ default_password_crypted:调用的这个变量的值!
设置网页跳转配置文件/etc/httpd/conf.d/cobbler.conf

修改密码出错:

http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
这个ks文件的位置,目前还找不到在哪里
但是它这个ks文件中下面这行出现了问题!!!
rootpw 后面给了两个参数!!!因为中间有空格!!!

#Root password
rootpw --iscrypted $1 $random-p$WbZ3JxhRzCS/1Ne4S9g4Z.

装机时报错:the following error was found while parsing the kickstart configuration file:

the following problem occurred on line 38 of the kickstart file:

A single argument is expected for the rootpw command !!!

这个报错 看得懂英语的话就太简单了:
意思是读ks文件的时候出错了!
出了什么错:一个单独的参数被期望在rootpw命令之后!!

意思就是rootpw 后面只能给一个参数 !!

再看上面的ks文件中 rootpw 后面的参数出现了空格 所以他会认为是两个参数!!!
这么简单都能牌一上午??????

排错: 改掉或者重写一个密码到setings这个主配置文件中,
重启cobblerd服务。
firefox http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
验证以下rootpw这行是否更新了即可!!!

rsync同步服务
同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据

命令用法
– rsync [选项...] 源目录/ 目标目录
– rsync [选项...] 源目录 目标目录

– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压

本地目录的同步

rsync -avz /dir1/  /stu01/

rsync+SSH远程同步

rsync /本地路径/源文件/ 用户名@对方的IP地址:/目标路径
rsync 用户名@对方的IP地址:/目标路径 /本地路径/路径/
虚拟机A:
#rm -rf /opt/*
#touch /opt/{1..5}.txt
#ls /opt/
#rsync --delete -avz /opt/ root@192.168.4.207:/opt/

虚拟机B:
#ls /opt/

虚拟机A:
#touch /opt/6.txt
#rsync --delete -avz /opt/ root@192.168.4.207:/opt/

虚拟机B:
#ls /opt/

实时的远程同步

一、取消用户名密码的验证
1.虚拟机A 生成公钥 私钥

ssh-keygen       #一路回车  
ls  /root/.ssh/  #查看公钥  私钥

2.虚拟机A 传递公钥 到对方服务器

ssh-copy-id  root@192.168.4.207

3.虚拟机A 验证
ssh root@192.168.4.207 (无需密码)

二、源码包编译安装 inotify-tools(监控目录内容变化)

1.真机上传到虚拟机A
#scp /var/ftp/NSD1803/SERVICES/Day01/tools.tar.gz root@192.168.4.7:/

2.安装gcc make
3.解包tar
#tar -xf /tools/inotify-tools-3.13.tar.gz -C /
#cd /inotify-tools-3.13/

4.配置./configure
[root@svr7 inotify-tools-3.13]# ./configure
5.编译与安装
[root@svr7 inotify-tools-3.13]# make
[root@svr7 inotify-tools-3.13]# make install
[root@svr7 /]# inotifywait #具备命令程序
No files specified to watch!
6.程序的使用
常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、attrib 等事件类别

[root@svr7 /]# inotifywait -mrq /opt/

三、书写rsync脚本

  死循环脚本

 while  [条件判断]
 do
       循环的语句
 done
    vim  /root/rsync.sh     (用变量代替要更好些)

    #!/bin/bash
    while  inotifywait -rqq /opt/  
    do
    rsync --delete -az  /opt/  root@192.168.4.207:/opt
    done  &

    chmod  +x  /root/rsync.sh

阶段性总结servers

标签:dns pxe cobbler rsyn

原文地址:http://blog.51cto.com/13659481/2110243

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!