使用playbook role创建httpd服务

首先在roles下面创建一个目录用来管理httpd这个项目的所有配置,这里创建的目录名为httpd,然后在该目录下创建一个tasks目录用来管理该项目中所用到的任务。 

由于在前面的测试中已经安装了httpd服务,所以这里我们先要删除掉原来的服务及其账户。

原有的账户及服务:

使用playbook role创建httpd服务

#卸载服务
[root@localhost tasks]# ansible wyh-test -m shell -a 'yum -y remove httpd'

#验证已卸载
[root@localhost tasks]# ansible wyh-test -m shell -a 'rpm -q httpd'

#删除账户
[root@localhost tasks]# ansible wyh-test -m user -a 'name=apache state=absent'

准备就绪之后开始创建各个任务的playbook。

[root@localhost tasks]# cat user.yml
- name: create user
  user: name=apache system=yes shell=/sbin/nologin

 apache的安装我们可以使用yum安装也可以使用编译安装,这里我们尝试用编译安装的方法,将自己创建好的一些配置文件拷贝到被控机器上,所以可以在我们刚才创建的httpd目录下创建一个files目录用来存放文件。

#将本地的httpd原始conf拷贝到files目录下(如果本地没有httpd的话,可以安装一下)
[root@localhost httpd]# cp /etc/httpd/conf/httpd.conf files/
[root@localhost tasks]# cat copyconf.yml
- name: copy files
  copy: src=httpd.conf dest=/data/ owner=apache      #由于前面已经把conf放到了files目录下,所以这里的src可以直接写文件名
[root@localhost tasks]# cat main.yml
- include: user.yml
- include: copyconf.yml

此时的httpd目录结构:

使用playbook role创建httpd服务

在roles的同级目录下创建一个总的playbook去调用刚才的这些任务:

[root@localhost ansible]# cat httpd_deploy.yml
- hosts: wyh-test
  remote_user: root

  roles:
    - httpd

 执行成功之后进行验证:

使用playbook role创建httpd服务

使用playbook role创建httpd服务

 

上一篇:SpringCloud Config - client连接server的设置写在application.yml, 导致属性无法解析


下一篇:[转载]在Windows下搭建Android开发环境