Ansible实战YAML语言完成apache的摆设,设置,启动全过程

[复制链接]
发表于 2026-2-25 13:41:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

🏡作者主页:点击! 

🏝️Ansible专栏:点击!

⏰️创作时间:2024年5月24日15点59分



目次

💯趣站保举💯
🎊前言
✨️YAML语言回顾
🎆1.编写YAML文件
环境准备
编写YAML核心
检测语法
🎇2.客户端测试


🎊前言

本教程将向导您从零开始,学习怎样使用 Ansible 和 YAML 语言完成 Apache 的摆设、设置和启动全过程。通过循规蹈矩的讲授和实战利用,您将把握 Ansible 的根本用法,并可以或许将所学知识应用于现实工作中,进步运维服从,低落运维资源。

✨️YAML语言回顾

YAML 是一种可读性高,用来表达数据序列化的格式。它可以轻松地将数据序列化为可读的文本格式,并反之亦然,同时生存数据结构。YAML 通常用于设置文件、数据存储和应用步伐设置等场景。
YAML 的重要上风包罗:


  • 易用性:YAML 的语法简单易懂,学习资源低,纵然是新手也能快速上手。
  • 可读性:YAML 数据格式清晰易读,纵然好坏步伐员也能轻松明确数据内容。
  • 机动性:YAML 支持多种数据结构和语言,可以或许满意各种应用场景的需求。
  • 扩展性:YAML 可以通过自界说数据范例和标签举行扩展,以满意特定需求。
YAML 的典范应用场景包罗:


  • 设置文件:YAML 常用于编写设置文件,比方应用步伐设置、数据库设置、服务器设置等。
  • 数据存储:YAML 可以用于存储数据,比方日记文件、缓存数据、设置文件等。
  • 应用步伐设置:YAML 可以用于设置应用步伐,比方界说参数、设置选项等。
  • 数据互换:YAML 可以用于在差别体系之间互换数据,比方将数据从数据库导出到文件或将数据从一个应用步伐传输到另一个应用步伐。


🎆1.编写YAML文件

环境准备

主机清单自行准备,我实验中host1就是目标主机(条件有限一台来做测试) 
起首你服务器也要下载apache,由于一些设置文件必要在服务器上去修改,上传。
  
  1. [root@ansible ~]# mkdir apache
  2. [root@ansible ~]# ls
  3. anaconda-ks.cfg  apache  ble  hostlist
  4. [root@ansible ~]# cd apache
  5. [root@ansible apache]# ls
  6. [root@ansible apache]# cp -rf /etc/httpd/conf/httpd.conf .        //把apache的配置文件复制过来一份
  7. [root@ansible apache]# ls
  8. httpd.conf
复制代码
   此下令将 Apache 设置文件 ( /etc/httpd/conf/httpd.conf ) 复制到当前目次 ( apache )。 cp 下令是一个文件复制实用步伐,它将源文件路径和目标文件路径作为参数,并将源文件的内容复制到目标文件。 -r 标志告诉 cp 递归复制源目次的任何子目次。 -f 标志告诉 cp 覆盖目标目次中的任何现有文件。
  总结
  这些下令创建一个名为 apache 的目次,切换到该目次,将 Apache 设置文件复制到该目次,然后列出该目次的内容。这通常作为在 Linux 服务器上安装和设置 Apache 的过程的一部分来完成。设置文件包罗 Apache 应怎样运行的设置,比方要提供服务的假造主机以及侦听哪些端口。
  检察端标语
httpd的默认端标语是80,如今我们把他改为8080
  
  1. [root@ansible apache]# grep '^Listen' httpd.conf
  2. Listen 80
  3. [root@ansible apache]# vim  httpd.conf
  4. [root@ansible apache]# grep '^Listen' httpd.conf
  5. Listen 8080
复制代码

编写YAML核心

  
  1. [root@ansible apache]# vim apache.yaml
  2. [root@ansible apache]# cat apache.yaml
  3. - hosts: host1
  4.   tasks:
  5.   - name: install -y httpd
  6.     yum: name=httpd state=present
  7.   - name: copy httpd.conf
  8.     copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf
  9.   - name: run
  10.     service: 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 启用服务在体系启动时自动启动。

​
检测语法

查抄语法是否出题目
  
  1. [root@ansible apache]# ansible-playbook apache.yaml --syntax-check
复制代码
列出脚本的任务都有哪些
  
  1. [root@ansible apache]# ansible-playbook apache.yaml --list-tasks
复制代码
列出目标主机
  
  1. [root@ansible apache]# ansible-playbook apache.yaml --list-hosts
复制代码
以下是没有编译错误准确的输出

  
  1. [root@ansible apache]# ansible-playbook apache.yaml --syntax-check
  2. playbook: apache.yaml
  3. [root@ansible apache]# ansible-playbook apache.yaml --list-tasks
  4. playbook: apache.yaml
  5.   play #1 (host1): host1        TAGS: []
  6.     tasks:
  7.       install -y httpd        TAGS: []
  8.       copy httpd.conf        TAGS: []
  9.       run        TAGS: []
  10. [root@ansible apache]# ansible-playbook apache.yaml --list-hosts
  11. playbook: apache.yaml
  12.   play #1 (host1): host1        TAGS: []
  13.     pattern: [u'host1']
  14.     hosts (1):
  15.       host1
复制代码

🎇2.客户端测试

起首检察是否安装乐成,而且检察httpd的端标语
  1. [root@localhost ~]# grep "^Listen" /etc/httpd/conf/httpd.conf
  2. Listen 8080
  3. 这时候就是8080 表示我们整个流程是正确无误的
复制代码
访问测试


测试3
我们在ansible服务器上把httpd的服务器端口修改为8090
在实验下令会怎么样呢???

  1. [root@ansible apache]# ansible-playbook apache.yaml
复制代码



留意这边固然设置文件修改了端口 但是正在运行的步伐端口依然是8080,这个时间必要重启大概重载服务,但是Ansible中也有专门针对这个的。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表