Linux學習(第十六週)

第十六週學習內容:PXE和ansible

第十六週作業:

1、實現cobbler+pxe自動化裝機 。

      PXE,被稱爲預啓動執行環境,可以實現自動化裝機,會用到的幾個重要組件:dhcp、tftp、http或ftp。

      dhcp:動態主機配置協議,主機想要接入tcp/ip網絡要爲其配置包括ip地址、掩碼、網關、dns等參數,藉助dhcp協議可以自動的爲主機分配以上這些參數。工作原理:dhcp服務器擁有一個地址池,主機發送廣播的DHCP請求報文,服務器做出響應,響應中就包含着主機請求的內容,主機收到響應後返回確認報文,同樣服務器在收到確認報文後也給主機發送一個確認信息。整個報文交互流程:DHCP DISCOVER-DHCP OFFER-DHCP REQUEST-DHCP ACK。dhcp協議還有租約的概念,所分配出去的參數都有其租期,當租期滿時會收回,主機會在租期一半的時候申請續租。dhcp在linux系統上的具體實現有dhcpd程序包。

      dhcpd:安裝完成後其配置文件在/etc/dhcp/dhcp.conf,服務文件時dhcpd.service。默認配置文件默認是空的,可以將模板複製過來,cp /usr/share/doc/dhcp-X-X/dhcp.conf.example /etc/dhcp/dhcp.conf。配置文件中使用option開頭作爲選項,後面可以跟routers指明網關,domain-name-servers指明DNS服務器,domain-name指明域名;其他重要配置項還有default-lease-time表示默認租期,max-lease-time表示最大租期,subnet X.X.X.X netmask X.X.X.X {}用來指明地址池,在“{}”中可以用range來定義具體給出去的地址範圍,filename配合next-server用來定義去遠程主機上加載哪個文件,這個在PXE部署中其中關鍵性作用。

      image.png

      tftp:作爲PXE的重要組件,需要安裝tftp_server程序包,提供簡單的文件傳輸。這個程序非常小,無需做什麼特殊配置,直接啓動即可,甚至不一定要以服務方式啓動,以臨時守護程序啓動也可以,默認存放目錄爲/var/lib/tftpboot目錄下,啓動服務後就可以上傳文件,下載文件了。

      http或ftp:這兩個程序是作爲PXE的yum倉庫,一般會把光盤掛在到這兩個程序的root目錄下,作爲PXE安裝新系統時的yum倉庫,如果是使用kickstart文件自動安裝也是使用這兩個程序作爲kickstart文件的路徑。

      image.png

      PXE的工作流程:沒有安裝系統的主機開機,通過DHCP拿到IP地址和遠程主機地址以及要加載的文件,通過tftp去加載哪個遠程主機上的文件,該文件會指引主機如何加載內核、initrd等,最終使用anaconda打開安裝界面,安裝系統過程中其他程序的安裝源是以http或ftp指向的遠程主機,或者使用kickstart文件安裝的話,此文件也是在遠程主機上的。

      具體配置:PXE工作流程中這個要去遠程主機主機上加載的重要文件叫做pxelinux.0,需要安裝syslinux,安裝完成後在/usr/share/syslinux目錄下就找到了,將其複製到tftp目錄下,同時還要講其他幾個輔助文件也一併拷過去,chain.c32、menu.c32、mboot.c32、memdisk,分別是列表文件,圖形界面文件等。

      image.png

      再在tftp目錄下,也就是/var/lib/tftpboot目錄下創建個pxelinux.cfg目錄,該目錄下新建個default文件作爲啓動安裝列表。

      image.png

      從掛載的光盤中/images/pxeboot目錄項將init和內核文件拷貝至tftp目錄下。

      image.png

      此時打開一臺主機以後可以看到,自動獲取地址,加載pxelinux.0文件,進入安裝界面。

      image.png

      總結:使用PXE進行自動系統安裝需要拷貝4個小文件(chain.c32、menu.c32、mboot.c32、memdisk),3個大文件(pxelinux.0、vmlinuz、initrd.img)到tftp目錄下,光盤和ks文件是放在http目錄下,dhcp提供地址和遠程主機地址和需要加載文件,別忘了還要配置一個default文件。

      cobbler:使用PXE在一臺服務器上同時提供多個不同系統的安裝是非常困難的,而cobbler作爲pxe的二次封裝,可以做到將多種可安裝系統揉合在一起,用戶可以基於選擇菜單挑選想要安裝的系統。cobbler位於EPEL倉庫,安裝完成後的主配置文件是/etc/cobbler/settings,在此目錄下還有許多次配置文件和模板文件。什麼配置也不該就可以啓動cobbler服務了,會跳出好多條配置報錯,一條一條去解決即可。首先是server,默認爲127.0.0.1,應該修改爲服務器地址;然後是next_server,也改爲服務器地址;再是關閉selinux;最後是把/usr/share/syslinux目錄下的pxelinux.0和menu.c32拷貝到/var/lib/cobbler/loaders目錄下,也可以把整個selinux拷貝過去,減少報錯。做好這些配置就可以啓動cobbler服務了,當然dhcp/http/tftp服務還是要準備好的。

      cobbler的三個層次:distro:不同的發行版系統;profile:不同配置的同一發行版系統;system:不同ip地址同一配置的同一發行版系統。

      cobbler的具體用法:coobler+主選項+次選項,主選項有distro、profile、system;次選項有add、edit、copy、list、remove等,使用--help可以查看幫助信息。定義一個distro有四個必須的配置指令:--kernel=指定內核文件、--initrd=指定initrd文件、--name=定義名字、--arch=定義平臺。嫌麻煩的話可以直接導入,這是最爲方便的方法:cobbler import --name="CentOS-7.0_x86_64" --path=/media/cdrom。會自動生成一個最小安裝的profile,如果不想用最小安裝的話,可以自行添加,命令爲cobbler profile add --name=XXX --distro=XXX --kickstart=XXX。

      image.png

      此時打開一臺主機以後可以看到,進入安裝界面。

      image.png

      總結:使用cobbler進行自動系統安裝,先啓動cobbler,一條條解決配置報錯;再配置運行環境,包括導入光盤,修改profile,自定義profile的話需要指ks文件。

2、ansible實現主/備模式高可用。

      ansible是一個能夠做到遠程進行系統配置,更新發布,批量運行命令等操作的程序,非常輕量化,沒有服務進程,客戶端也無需安裝額外的程序,服務器端也就是部署指令的主機上也只需要個命令行工具即可。ansible程序本身只是執行一些管理命令,具體的任務是由模塊去完成的,核心模塊用來完成最爲常見的任務,自定義模塊用來完成實現anible默認不支持的任務。連接被管理主機是通過ssh的,哪些主機可被管理則通過HOST文件(主機清單)定義,還有一塊日誌插件和核心組件playbooks(劇本),用來定義哪些主機執行那些操作之類的,ansible配置的最終目的就是定義劇本和角色。

      ansible命令的簡單使用:ansible+目標主機+選項,可以給多臺遠程主機下達指令。常用選項有-m指明使用模塊;-a傳遞參數;-c檢查測試;-f指明一批最多管理幾臺主機,默認爲5臺;--syntax-check檢測劇本的語法錯誤;--list-hosts列出主機。因爲是通過ssh登錄遠程主機的,先要搞好ssh不用密碼,方式是將公鑰發送給被管制的主機。

      先生成對稱密鑰,默認會存放在/root/.ssh目錄下,把id_rsa.pub拷貝到被管制主機的/root/.ssh目錄下,命名爲authorized_keys。

      image.png

      image.png

      ansible實現主/備模式高可用http服務具體配置:安裝ansible

      image.png

      編輯主機清單

      image.png

      配置http服務的角色:先創建必要的目錄

      image.png

      再添加http服務的配置文件

      image.png

      再添加一張測試頁面

      image.png

     最後配置http服務的任務,角色創建完畢。

      image.png

      配置keepalived服務的角色:同樣先創建必要的目錄

      image.png

      再創建keepalived的配置文件

      image.png

      因爲配置文件中使用了變量,所以要爲主機清單中的主機添加上keepalived的主從和優先級變量

      image.png

      配置keepalived服務的任務,角色定義完畢。

      image.png

      配置真正的劇本

      image.png

      最後執行劇本

      image.png

      此時就可以對後端兩臺主機進行訪問了。

      image.png

      

      

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章