🏡作者主頁:點擊!?
🏝?Ansible專欄:點擊!
??創作時間:2024年5月24日15點59分
目錄
💯趣站推薦💯
🎊前言
??YAML語言回顧
🎆1.編寫YAML文件
環境準備
編寫YAML核心
檢測語法
🎇2.客戶端測試
💯趣站推薦💯
?
前些天發現了一個巨牛的🤖人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,人工智能,?機器算法等......??點擊跳轉網頁!
https://www.captainbed.cn/sis/
🎊前言
本教程將帶領您從零開始,學習如何使用 Ansible 和 YAML 語言完成 Apache 的部署、配置和啟動全過程。通過循序漸進的講解和實戰操作,您將掌握 Ansible 的基本用法,并能夠將所學知識應用于實際工作中,提高運維效率,降低運維成本。
??YAML語言回顧
YAML 是一種可讀性高,用來表達數據序列化的格式。它可以輕松地將數據序列化為可讀的文本格式,并反之亦然,同時保留數據結構。YAML 通常用于配置文件、數據存儲和應用程序配置等場景。
YAML 的主要優勢包括:
- 易用性:YAML 的語法簡單易懂,學習成本低,即使是新手也能快速上手。
- 可讀性:YAML 數據格式清晰易讀,即使是非程序員也能輕松理解數據內容。
- 靈活性:YAML 支持多種數據結構和語言,能夠滿足各種應用場景的需求。
- 擴展性:YAML 可以通過自定義數據類型和標簽進行擴展,以滿足特定需求。
YAML 的典型應用場景包括:
- 配置文件:YAML 常用于編寫配置文件,例如應用程序配置、數據庫配置、服務器配置等。
- 數據存儲:YAML 可以用于存儲數據,例如日志文件、緩存數據、配置文件等。
- 應用程序配置:YAML 可以用于配置應用程序,例如定義參數、設置選項等。
- 數據交換:YAML 可以用于在不同系統之間交換數據,例如將數據從數據庫導出到文件或將數據從一個應用程序傳輸到另一個應用程序。
🎆1.編寫YAML文件
環境準備
主機清單自行準備,我實驗中host1就是目標主機(條件有限一臺來做測試)?
首先你服務器也要下載apache,因為一些配置文件需要在服務器上去修改,上傳。
[root@ansible ~]# mkdir apache
[root@ansible ~]# ls
anaconda-ks.cfg apache ble hostlist
[root@ansible ~]# cd apache
[root@ansible apache]# ls
[root@ansible apache]# cp -rf /etc/httpd/conf/httpd.conf . //把apache的配置文件復制過來一份
[root@ansible apache]# ls
httpd.conf
此命令將 Apache 配置文件 (
/etc/httpd/conf/httpd.conf
) 復制到當前目錄 (apache
)。cp
命令是一個文件復制實用程序,它將源文件路徑和目標文件路徑作為參數,并將源文件的內容復制到目標文件。-r
標志告訴cp
遞歸復制源目錄的任何子目錄。-f
標志告訴cp
覆蓋目標目錄中的任何現有文件。總結
這些命令創建一個名為
apache
的目錄,切換到該目錄,將 Apache 配置文件復制到該目錄,然后列出該目錄的內容。這通常作為在 Linux 服務器上安裝和配置 Apache 的過程的一部分來完成。配置文件包含 Apache 應如何運行的設置,例如要提供服務的虛擬主機以及偵聽哪些端口。
查看端口號
httpd的默認端口號是80,現在我們把他改為8080
[root@ansible apache]# grep '^Listen' httpd.conf
Listen 80
[root@ansible apache]# vim httpd.conf
[root@ansible apache]# grep '^Listen' httpd.conf
Listen 8080
編寫YAML核心
[root@ansible apache]# vim apache.yaml
[root@ansible apache]# cat apache.yaml
- hosts: host1tasks:- name: install -y httpd yum: name=httpd state=present- name: copy httpd.confcopy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf- name: runservice: name=httpd state=started enabled=yes
命令的詳細解釋:
- name: install -y httpd
- 此任務使用
yum
模塊安裝 Apache 包 (httpd
):
name
:“install -y httpd” - 任務的人類可讀名稱。-y
標志可能用于yum
模塊,并且可能會在安裝過程中抑制提示(取決于模塊版本)。yum
:指定將使用yum
模塊,該模塊管理基于 RedHat 的系統上的包。name=httpd
:指示yum
模塊安裝名為httpd
的包。state=present
:確保httpd
包安裝在host1
上。
- name: copy httpd.conf
- 此任務使用
copy
模塊復制配置文件:
name
:“copy httpd.conf” - 任務的人類可讀名稱。copy
:指定將使用負責文件傳輸的copy
模塊。src=./httpd.conf
:定義源文件路徑。./
指的是 playbook 所在的當前目錄。確保此目錄中存在名為httpd.conf
的文件。dest=/etc/httpd/conf/httpd.conf
:定義目標主機上的目標文件路徑。這將替換host1
上現有的httpd.conf
文件(如果需要對原始文件進行修改,請小心)。
- name: run service
- 此任務使用
service
模塊管理 Apache 服務:
name
:“運行服務” - 任務的人類可讀名稱。service
:指定將使用用于管理系統服務的service
模塊。name=httpd
:指示service
模塊管理名為httpd
的服務(可能是 Apache Web 服務器)。state=started
:確保 Apache 服務在host1
上啟動。enabled=yes
:這告訴 Ansible 啟用服務在系統啟動時自動啟動。
?
檢測語法
檢查語法是否出問題
[root@ansible apache]# ansible-playbook apache.yaml --syntax-check
列出劇本的任務都有哪些
[root@ansible apache]# ansible-playbook apache.yaml --list-tasks
列出目標主機
[root@ansible apache]# ansible-playbook apache.yaml --list-hosts
以下是沒有編譯錯誤正確的輸出
[root@ansible apache]# ansible-playbook apache.yaml --syntax-checkplaybook: apache.yaml
[root@ansible apache]# ansible-playbook apache.yaml --list-tasksplaybook: apache.yamlplay #1 (host1): host1 TAGS: []tasks:install -y httpd TAGS: []copy httpd.conf TAGS: []run TAGS: []
[root@ansible apache]# ansible-playbook apache.yaml --list-hostsplaybook: apache.yamlplay #1 (host1): host1 TAGS: []pattern: [u'host1']hosts (1):host1
🎇2.客戶端測試
首先查看是否安裝成功,并且查看httpd的端口號
[root@localhost ~]# grep "^Listen" /etc/httpd/conf/httpd.conf
Listen 8080
這時候就是8080 表示我們整個流程是正確無誤的
訪問測試
測試3
我們在ansible服務器上把httpd的服務器端口修改為8090
在執行命令會怎么樣呢???
[root@ansible apache]# ansible-playbook apache.yaml
注意這邊雖然配置文件修改了端口 但是正在運行的程序端口依然是8080,這個時候需要重啟或者重載服務,但是Ansible中也有專門針對這個的。