Ansible實戰YAML語言完成apache的部署,配置,啟動全過程

🏡作者主頁:點擊!?

🏝?Ansible專欄:點擊!

??創作時間:2024年5月24日15點59分


目錄

💯趣站推薦💯

🎊前言

??YAML語言回顧

🎆1.編寫YAML文件

環境準備

編寫YAML核心

檢測語法

🎇2.客戶端測試


💯趣站推薦💯

?

前些天發現了一個巨牛的🤖人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,人工智能,?機器算法等......??點擊跳轉網頁!icon-default.png?t=N7T8https://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中也有專門針對這個的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14220.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14220.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14220.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos 安裝nginx 并配置https ssl

進入你要安裝的目錄 一般是/usr/local/ wget https://nginx.org/download/nginx-1.24.0.tar.gz解壓安裝包:使用以下命令解壓下載的Nginx安裝包: tar -zxvf nginx-1.24.0.tar.gz在編譯和安裝Nginx之前,確保您的系統上已安裝了必要的編譯工具和…

flume channel和interceptor簡介及官方用例

一、Flume Channels channel是在代理上暫存事件的存儲庫。Source 添加事件,Sink 將其刪除。 1、Memory Channel 事件存儲在具有可配置最大大小的內存中隊列中。它非常適合需要更高吞吐量的流,但在agent發生故障時會丟失暫存數據 Property Name Defau…

k近鄰和kd樹

K近鄰 選取k值的時候可以采用交叉驗證的方法 一般采用歐氏距離 kd樹 采用樹這個特殊的數據結構來實現k近鄰算法 先假設是二維的情況 下面講解kd樹的完整構造過程 找這個中位數是按照每棵子樹來創建的 前提是已經有了一棵kd樹,然后來一個實例點

java組合設計模式Composite Pattern

組合設計模式(Composite Pattern)是一種結構型設計模式,它允許你將對象組合成樹形結構來表示“部分-整體”的層次結構。組合模式使得客戶端對單個對象和組合對象的使用具有一致性。 // Component - 圖形接口 interface Graphic {void draw()…

Python UDP編程簡單實例

TCP是建立可靠的連接,并且通信雙方都可以以流的形式發送數據。 相對于TCP,UDP則是面向無連接的協議,不需要建立連接,只需要知道對方IP地址和端口號,就可以直接發送數據包。但是只管發送不保證到達。 雖然UDP傳輸數據…

Docker快速部署Seata的TC服務以及微服務引入Seata教程

目錄 一、使用docker部署Seata的TC服務 1、拉取TC服務鏡像 2、創建并運行容器 ?3、修改配置文件 4、在Nacos中添加TC服務的配置 5、重啟TC服務 二、微服務集成Seata 1、引入依賴 2、修改配置文件 Seata是阿里的一個開源的分布式事務解決方案,能夠為分布…

STM32學習和實踐筆記(31):輸入捕獲實驗

1.輸入捕獲介紹 在定時器中斷實驗章節中我們介紹了通用定時器具有多種功能,輸入捕獲就是其中一種。STM32F1除了基本定時器TIM6和TIM7,其他定時器都具有輸入捕獲功能。輸入捕獲可以對輸入的信號的上升沿,下降沿或者雙邊沿進行捕獲,…

【博客主頁】博客主旨 精華

前言 與博客園不同, 最近CSDN在進行資本化的轉型.其一部分的VIP代碼和小冊我也有相關消費, 個人認為是一部分做的比較成過, 另一部分又不是特別成功. 其CSDN博客已經失去其原本技術交流的意義, 變成一種免費的知識引流和收費交流. 這其實與我們的開源社區背道而馳, 但是又吸引…

世界電信日 | 紫光展銳以科技創新支撐數字經濟可持續發展

專注科技創新,打造全球數字經濟技術基石 紫光展銳堅持科技創新,為數字經濟蓬勃發展提供基石力量。 面對5G-A技術的巨大潛力,紫光展銳與眾多生態伙伴緊密合作,積極推動5G-A的商用進程。紫光展銳提出的兩項R18 eRedCap演進方案已被3GPP標準采…

為什么要實現設備之間的互通?

設備之間的互通是電信設備的普遍性要求,特別是在接入網領域中,不同廠商的局端設備與用戶端(終端)設備之間的互通顯得尤其重要。 一、互通能為產業鏈的各個環節帶寬積極影響。 (1)對用戶而言,互…

安裝新版的Ubuntu WSL以使能BBR擁塞控制算法

【多次嘗試成功的方案】通過> wsl - -list -online列出可以安裝的版本,用命令> wsl --install -d Ubuntu-24.04 安裝。 【未成功的方案】通過掛在ubuntu24.04.iso到E盤后,用命令> wsl --import Ubuntu24.04 C:\WSL\Ubuntu24.04\ E:\ --versio…

Redis系統架構中各個處理模塊是干什么的?no.19

Redis 系統架構 通過前面的學習,相信你已經掌握了 Redis 的原理、數據類型及訪問協議等內容。本課時,我將進一步分析 Redis 的系統架構,重點講解 Redis 系統架構的事件處理機制、數據管理、功能擴展、系統擴展等內容。 事件處理機制 Redis…

API-BigInteger、BigDecimal

BigInteger: demo1: package BigInteger;import java.math.BigInteger; import java.util.Random;public class demo1 {public static void main(String[] args) {//獲取一個隨機最大整數BigInteger bd1 new BigInteger(5, new Random());System.out.println(bd1…

SSMP整合案例第一步 制作分析模塊創建與開發業務實體類

制作分析 我們要實現一個模塊的增刪改查 實際開發中mybatisplus用的不多,他只能對沒有外鍵的單表進行簡單的查詢 但在這個案例中我們還是選擇mybatisplus開發 模塊創建 我們把所有服務器都放在一起 就不用前后端分離 我們嘗試用后端開發進行全棧開發 新建項目添…

macos brew安裝多版本protobuf,切換指定版本protobuf 為默認版本方法

protobuf 不同的版本語法相差很大, 而在不同的項目中可能使用的protobuf版本也不同,所以我們的電腦就可能需要安裝多個版本的protobuf, 下面介紹macos下如何通過brew安裝多版本和設置想要的默認版本的方法 安裝,則可以先執行 bre…

Thinkphp3.2.3網站后臺不能訪問如何修復

我是使用Thinkphp3.2.3新搭建的PHP網站,但是網站前臺可以訪問,后臺訪問出現如圖錯誤: 由于我使用的Hostease的Linux虛擬主機產品默認帶普通用戶權限的cPanel面板,對于上述出現的問題不清楚如何處理,因此聯系Hostease的…

(3)醫療圖像處理:MRI磁共振成像-快速采集--(楊正漢)

目錄 一、磁共振快速采集技術基礎 1.K空間的基本特點 2.快速成像的理由: 3.快速成像的硬件要求: 二、磁共振快速采集技術 1.采集更少的相位編碼線 2.平行采集技術PAT 3.其他與快速采集有關的技術 1)部分回波技術 2)頻率…

java實現一個動態監控系統,監控接口請求超時的趨勢

目錄 整體思路案例實現1. 數據收集2. 數據聚合3. 趨勢分析4. 異常檢測5. 異常處理定時任務 整體思路 理想情況下,你可以實現一個簡單的動態監控算法來檢測渠道請求的響應時間趨勢,并在發現頻繁超時的情況下進行處理。以下是一個可能的算法框架&#xff…

Oracle表關聯更新幾種方法

1、測試表及數據準備 create table T_update01(ID int ,infoname varchar2(32),sys_guid varchar2(36)); create table T_update02(ID int ,infoname varchar2(32),sys_guid varchar2(36));insert into T_update01 select 1,N1_updateName,sys_guid() from dual union select …

java如何獲取IP和IP的歸屬地?

在Java中,獲取IP地址通常指的是獲取本地機器的IP地址或者通過某種方式(如HTTP請求)獲取的遠程IP地址。代碼案例如下: 而要獲取IP的歸屬地(地理位置信息),則通常需要使用第三方IP地址查詢服務,我…