ansible自定义模板部署apache服务

ansible,apache · 浏览次数 : 3

小编点评

**创建角色目录:** ``` mkdir -p /etc/ansible/roles ``` **创建角色文件:** ``` cd /etc/ansible/roles/apache2 mkdir tasks templates files handlers vars meta defaults ``` **编写 tasks/main.yml:** ```yaml - name: Install httpd yum: name: httpd state: present- - name: Start httpd service service: name: httpd state: started enabled: yes - name: Stop firewalld service service: name: firewalld state: stopped enabled: no - name: Create /site directory file: path: /var/www/html/site state: directory mode: '0755' - name: Template index.html template: src: index.html.j2 dest: /var/www/html/site/index.html mode: '0644' ``` **编写 templates/index.html.j2:** ```jinja2 Welcome to {{ ansible_fqdn }} On {{ ansible_default_ipv4.address }} ``` **创建 playbook:** ```yaml cd /etc/ansible/ touch apache.yml ``` **运行 playbook:** ``` ansible-playbook apache.yml ``` **验证结果:** 登录到目标机器上,检查 Apache 的状态,并确保 /site/index.html 文件已正确创建。

正文

使用Ansible来部署Apache服务是一个很好的选择,因为它可以自动化部署过程,确保所有的服务器上都有相同的配置。以下是一个简单的步骤指南,展示如何使用Ansible来部署Apache服务:

1 创建角色目录

首先,在 /etc/ansible/roles 下创建 apache 目录:

mkdir -p /etc/ansible/roles/apache

2 创建角色内的目录结构

apache 角色目录下,你需要创建几个子目录:tasks, templates, files, handlers, vars, meta, 和 defaults(尽管不是所有的都是必要的,但通常 taskstemplates 是必须的)。

cd /etc/ansible/roles/apache
mkdir tasks templates

3 编写 tasks/main.yml

tasks/main.yml 中,你将定义安装和配置 Apache 的步骤。

---
- name: Install httpd
  yum:
    name: httpd
    state: present

- name: Start httpd service
  service:
    name: httpd
    state: started
    enabled: yes

- name: Stop firewalld
  service:
    name: firewalld
    state: stopped
    enabled: no

- name: Create /site directory
  file:
    path: /var/www/html/site
    state: directory
    mode: '0755'

- name: Template index.html
  template:
    src: index.html.j2
    dest: /var/www/html/site/index.html
    mode: '0644'

4 编写 templates/index.html.j2

templates/index.html.j2 中,你将使用 Jinja2 模板语法来插入主机名和 IP 地址。

Welcome to {{ ansible_fqdn }} On {{ ansible_default_ipv4.address }}

要使用你在 /etc/ansible/roles 目录下创建的 apache 角色,你需要编写一个 Ansible playbook。以下是如何编写并使用该角色的步骤:

5 创建 playbook

/etc/ansible/ 目录下(或者任何你希望存放 playbook 的地方),创建一个新的 playbook 文件,例如 apache.yml

cd /etc/ansible/
touch apache.yml

然后使用你喜欢的文本编辑器(如 nano, vim, emacs 等)打开 apache.yml 并输入以下内容:

---
- name: Deploy Apache
  hosts: your_target_group  # 替换为你的目标主机组名,例如 'webservers'
  become: yes  # 使用 sudo 或其他方法提升权限(如果需要)
  roles:
    - apache  # 调用你创建的 apache 角色

请注意,your_target_group 需要替换为你的 Ansible 主机清单中定义的一个主机组名。

6 运行 playbook

使用 ansible-playbook 命令运行 playbook:

ansible-playbook apache.yml

如果你定义了密码提升(即 become: yes),Ansible 可能会提示你输入 sudo 密码(除非你在 ansible.cfg 中配置了 become_method: sudobecome_pass)。

7 验证结果

一旦 playbook 运行完成,你可以登录到目标机器上检查 Apache 是否已正确安装、启动,并且 /site/index.html 文件是否已正确创建。

你可以使用以下命令来检查 Apache 的状态:

sudo systemctl status httpd

并使用 curlwget 来检查 /site/index.html 文件的内容:

curl http://localhost/site/index.html

或者

wget -qO- http://localhost/site/index.html

注意:如果你是在本地测试,并且 Apache 监听在默认的 80 端口上,那么 http://localhost 应该是正确的。但如果你是在远程机器上运行,你需要将 localhost 替换为远程机器的实际 IP 地址或域名。

以上步骤应该能够帮助你使用你在 /etc/ansible/roles 目录下创建的 apache 角色。

与ansible自定义模板部署apache服务相似的内容:

ansible自定义模板部署apache服务

使用Ansible来部署Apache服务是一个很好的选择,因为它可以自动化部署过程,确保所有的服务器上都有相同的配置。以下是一个简单的步骤指南,展示如何使用Ansible来部署Apache服务: 1 创建角色目录 首先,在 /etc/ansible/roles 下创建 apache 目录: mkdi

[转帖]别让运维太忙,一文详解 Ansible 的自动化运维

https://zhuanlan.zhihu.com/p/270655214 一、Ansible 概述 Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。 Ansible 通过本身集成的非常丰富的模块可以实现各种管

云环境自动化(Terraform+Ansible)

应用的自动化部署由来已久,也有很多知名的工具,比如puppet,ansible,saltstack,chef等等。 但是对于基础设施部分,一般都是以事先准备的方式来提供的。 虽然各大云服务器厂商也逐步提供了各类的API,用来控制自己的基础设施, 但是,由于各类厂商的差异性,API差异很大且没有统一分

[转帖]太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏

https://zhuanlan.zhihu.com/p/530678807 一: ansible 的概述 1. ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要

Ansible的常用模块

目录ansible常用模块1. file模块1.1 file模块的选项1.2 file模块的使用1.2.1 使用file模块在远程主机创建文件1.2.2 创建目录1.2.3 删除文件/目录2. copy模块2.1 copy模块的选项2.2 copy模块的使用3. yum_repository模块3.

[转帖]ansible小结(七)常用模块

ansible小结(七)常用模块 http://www.361way.com/ansible-modules/4415.html 在上一篇中介绍了commands部分模块,本篇承接上篇介绍下常用的模块。根据官方的分类,将模块按功能分类为:云模块、命令模块、数据库模块、文件模块、资产模块、消息模块、监

[转帖]ansible 安装 K8S

作者:山河已无恙链接:https://www.zhihu.com/question/315497851/answer/2898814729来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 写在前面分享一个 k8s 高可用集群部署的 Ansible 剧本以及涉及到的一些工

Ansible 学习笔记 - 定位主机和组的模式

中英文对照表 | 英文 | 中文 | 备注 | | | | | | host | 主机 | | | group | (主机)组 | | | pattern | 模式 | | | ad hoc | 特别命令 | | | playbook | 剧本 | Ansible 专有名词,一段复杂的编排 | |

Ansible 学习笔记 - 批量巡检站点 URL 状态

前言 不拖泥带水,不东拉西扯。 速战速决,五分钟学到一个工作用得上的技巧。 通过一个个具体的实战案例,来生动演示 Ansible 的用法。 需求 我需要定期巡检或定时监控我公司的所有站点的首页的可用性状态。 Ansible Playbook 实战脚本 check_url_status.yml 如下:

京东云开发者|IoT运维 - 如何部署一套高可用K8S集群

环境 准备工作 配置ansible(deploy 主机执行) # ssh-keygen # for i in 192.168.3.{21..28}; do ssh-copy-id -i ~/.ssh/id_rsa.pub $i; done [root@deploy ~]# cat /etc/ansi