创建和使用 apache 角色

1、jinjia2模板

hosts.j2,内容如下(主机名和ip地址使用变量):

Welcome to 主机名 !(比如servera.lab.example.com

My ip is ip地址.

要求在所有受管主机生成文件:/etc/welcome.txt。

2、角色部分

根据下列要求,在 /root/ansible/roles 中创建名为 apache 的角色:

httpd 软件包已安装,设为在系统启动时启用并启动

防火墙已启用并正在运行,并使用允许访问 Web 服务器的规则

模板文件 index.html.j2 已存在,用于创建具有以下输出的文件 /var/www/html/index.html:

Welcome to HOSTNAME on IPADDRESS

其中,HOSTNAME 是受管节点的完全限定域名,IPADDRESS 则是受管节点的 IP 地址。

[student@workstation ansible]$ cd roles/

[student@workstation roles]$ ansible-galaxy init apache

[student@workstation roles]$ vim apache/tasks/main.yml

---

# tasks file for apache

- name: install apache

yum:

name: httpd

state: present

- service:

name: "{{ item }}"

state: started

enabled: yes

loop: ## 定义变量列表,注意缩进

- httpd

- firewalld

## 定义防火墙策略,可以通过帮助去找呀ansible-doc -l | grep firewalld

- name: firewalld service ## 按题要求,设置防火墙策略

firewalld:

service: http

permanent: yes

immediate: yes ## 用来重新加载防火墙的,如果不重新加载则不生效啊

state: enabled

- name: user templates ## 按题要求,使用模板模块拷贝文件

template:

src: index.html.j2

dest: /var/www/html/index.html

owner: apache

group: apache

mode: '0644'

[student@workstation roles]$ vim /root/ansible/roles/apache/templates/index.html.j2

Welcome to {{ ansible_facts.fqdn }} on {{ ansible_facts.default_ipv4.address }}

[student@workstation roles]$ vim /home/student/ansible/newrole.yml

---

- name: use http role

hosts: webservers

roles:

- apache

[student@workstation ansible]$ ansible-playbook /home/student/ansible/newrole.yml ## 记得回到ansible目录下执行playbook

[student@workstation ansible]$ curl http://serverc

Welcome to serverc.lab.example.com on 172.25.250.12

[student@workstation ansible]$ curl http://serverd

Welcome to serverd.lab.example.com on 172.25.250.13

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值