Ansible详解(十五)——Ansible Role实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible中的Role配置实战。

一、实战目的和思路

今天给大家带来Ansible的又一个Role实战。本文从具体的Role运用的角度,实现了标准化的Ansible的Role实战,完成了通过Role安装Apache服务。
为了实现这一目的,我们首先在/etc/ansible/roles/目录下创建apache子目录,以作为一个Role。然后在该目录下,创建vars、files、handlers、tasks、templates、meta等等子目录。然后将相关的配置文件复制到files文件夹下,并写入相关的变量和Playbook文件。

二、Role准备

首先,我们先创建相关文件夹,执行命令:

mkdir -p /etc/ansible/roles/apache/{vars,files,tasks,meta,template,default,handlers}

创建完成后如下所示:
Ansible详解(十五)——Ansible Role实战_第1张图片
然后,我们在Ansible设备上安装Apache服务,并将其配置文件修改,将Listen、User和Group三处改为{{ listen_port }}、{{ username }}和{{ groupname }}。然后重命名为httpd.conf.j2,并将其放入templates目录下。

三、Playbook编写

首先,我们先编写Role的变量文件,创建vars/main.yml,并写入如下内容:

listen_port: 80
username: pzz
groupname: pzz

完成后,我们编写Role的Taks文件,创建tasks/prepare.yml,并写入如下内容:

- name: Shutdown Firewall
  shell: systemctl stop firewalld; iptables -F; setenforce 0
- name: Create User nad Group
  shell: useradd pzz -M -s /sbin/nologin

创建tasks/install.yml,并写入如下内容:

- name: Install Apache
  yum: name=httpd state=installed
- name: Config Apache
  template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
  notify: Restart Apache

创建主文件taks/main.yml,将上述两个task文件引入,写入如下内容:

- include: prepare.yml
- include: install.yml

接下来,我们创建handler文件,创建handlers/main.yml,并写入如下内容:

- name: Restart Apache
  service: name=httpd state=restarted

最后,让我们执行该Role,执行命令如下:

ansible-playbook /etc/ansible/roles/apache/main.yml

执行结果如下:

可见,我们Ansible Role执行成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(自动化运维,apache,linux,centos,Ansible,Role)