這是我參與8月更文挑戰的第6天。linux
《運維思索:Cobbler無人值守實現操做系統安裝規範化》一文只是實現了對操做系統的主機名、網絡、磁盤分區的安裝規範,但此時還不可以直接用於生產,由於操做系統還有不少配置沒有進行優化,接下來的工做就是要對操做系統進行配置規範化。c++
讓咱們先中止手頭無休止的工做,來簡單回想下曾經配置過數不清的服務器,配置過程是否和如下有所相似:vim
阿里源、163源、epel源等安全
gcc、gcc-c++、cmake、wget、iftop、supervisor等bash
a.終端超時時間 b.優化history服務器
a. 文件描述符65535
b. 進程數65535markdown
a. 端口更改 ----測試階段還是22 b. 禁止root登陸等優化網絡
a. 關閉iptables 、firewall b. 有防火牆,作基礎配置運維
rc.local 須要受權755,默認缺乏可執行權限。ssh
密碼複雜度、禁止無用服務等
以上基本都是操做系統配置優化可能涉及到的點,相信咱們確定都配置過。重點是咱們還在日復一日的手動或腳本化的個性化執行,仍是已經提取規範、在團隊中流轉自動化、批量化按需執行?
是的,若是運維團隊不大,手動或腳本可以知足配置需求;但一旦上規模,團隊中每一個人因爲我的認知、習慣等,配置後的系統差別化很大?此時就凸顯了配置規範化的重要性,配合自動化運維工具,可實現配置的自動化、批量化及按需配置等功能。
對於規範,咱們仍是要按照統一的規範編寫風格,遵循簡單清晰、直觀展現
的原則,詳見《運維思索:運維規範如何生成?》 固然規範的依據是創建在事實基礎之上,在上文已經提出了,咱們只需將其整合如下便可,具體涉及如下幾方面:
用戶
服務器使用固定用戶,主要爲管理用戶、應用用戶、日誌用戶
軟件源
安裝基礎組件須要經過統一的軟件源
關閉服務
統一關閉selinux、iptables、sendmail、postfix等無用服務
初始目錄
建立固定的初始目錄,如應用、日誌、備份等目錄
limit及內核參數
DNS及NTP
環境變量及歷史命令記錄
終端超時
歷史命令記錄及遠程備份
ssh優化
禁止root登陸
ssh登陸慢優化
修改默認端口
安全設置
密碼複雜度及長度等
禁止ctrl+alt+delete等
爲了不規範化細節輸出,給本就不輕鬆的運維工做增長額外的負擔,所以咱們仍是列舉要點,至於細節能夠參看自動化部署內容,便於咱們規範+實操的有效結合。
結合配置規範化,咱們下一步的工做就是自動化的實現。在此爲應對不通服務器的需求,咱們最好是能實現按需配置
,即既能夠實現配置的所有執行,也能夠實現某個配置需求的單獨執行。所以咱們要提早作好功能的分配
。 在此咱們使用ansible對服務器進行配置的自動化徹底化,以及經過tag實現按需配置。
#對配置自動化經過ansible-playbook實現
vim os_init.yml
- hosts: "{{ host_ip }}"
gather_facts: yes
remote_user: root
roles:
- os_init
#其中task以下
vim mail.yml
- include: user.yml #用戶管理
- include: repo.yml #yum源
- include: init_pkg.yml #安裝基礎組件
- include: profile.yml #環境變量
- include: selinux.yml #selinux
- include: dir.yml #基礎目錄
- include: limits.yml #系統參數
- include: iptables.yml #防火牆
- include: sysctl.yml #內核參數
- include: rc.local.yml #開機啓動
- include: dns.yml #dns
- include: ntp.yml #ntp
- include: rsyslog.yml #日誌同步
- include: sshd.yml #ssh優化
- include: safe.yml #安全配置
#服務器配置徹底化
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml
#經過tag實現單獨添加用戶
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml -t user
#經過tag實現單獨安全配置
ansible-playbook -b -e host_ip=10.10.2.10 -v os_init.yml -t safe
複製代碼
咱們經過host_ip既能夠實現服務器的單獨執行,也能夠配置經過ansible資產實現服務器的批量執行。
在操做系統的安裝規範化+配置規範化前提下,結合Cobbler+Ansible實現了操做系統的安裝、配置自動化,能夠在必定程度上解決運維工做中的基礎運維部分,其更深遠的意義在於有效避免了因配置參數混亂致使的生產問題,爲往後更多的自動化接入打好了基礎。