今天继续给大家介绍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设备上安装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