1. 程式人生 > >階段性總結servers

階段性總結servers

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 [email protected]:/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/ [email protected]:/opt/

虛擬機B:
#ls /opt/

虛擬機A:
#touch /opt/6.txt
#rsync --delete -avz /opt/ [email protected]:/opt/

虛擬機B:
#ls /opt/

實時的遠程同步

一、取消用戶名密碼的驗證
1.虛擬機A 生成公鑰 私鑰

ssh-keygen       #一路回車  
ls  /root/.ssh/  #查看公鑰  私鑰

2.虛擬機A 傳遞公鑰 到對方服務器

ssh-copy-id  [email protected]

3.虛擬機A 驗證
ssh [email protected] (無需密碼)

二、源碼包編譯安裝 inotify-tools(監控目錄內容變化)

1.真機上傳到虛擬機A
#scp /var/ftp/NSD1803/SERVICES/Day01/tools.tar.gz [email protected]:/

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/  [email protected]:/opt
    done  &

    chmod  +x  /root/rsync.sh

階段性總結servers