学海无涯
go,go,go

使用ansible的playbook部署httpd用自己指定的配置文件启动

部署一个http服务,部署完成之后按照自己配置好的模板配置文件启动httpd服务
卸载掉之前安装的httpd
ansible all -m yum -a 'name=httpd state=absent'


#检查端口已经关闭
[root@ansible ansible]# ansible all -m shell -a 'ss -lnt'
192.168.2.196 | CHANGED | rc=0 >>
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::111                     :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      100        ::1:25                      :::*                  

192.168.2.189 | CHANGED | rc=0 >>
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::111                     :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      100        ::1:25                      :::*                  

192.168.2.197 | CHANGED | rc=0 >>
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::111                     :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      100        ::1:25                      :::*  


#使用2台服务器做实验
[root@ansible ansible]# ansible web --list-hosts
  hosts (2):
    192.168.2.189
    192.168.2.196

#事先要准备好httpd的配置文件,然后把配置文件拷贝到被管理的机器,安装httpd使用配置好的配置文件启动
#管理端安装httpd,部署一个http服务,部署完成之后按照自己配置好的模板配置文件启动httpd服务
yum install -y httpd

#拷贝httpd的配置文件作为配置模板
cp /etc/httpd/conf/httpd.conf /app/
#修改端口为8080
[root@ansible ansible]# grep 'Listen 8080' /app/httpd.conf
Listen 8080
#编写playbook剧本文件
cat >/ansible/httpd.yml<<'EOF'
---
- hosts: web
  remote_user: root

  tasks:
    - name: install httpd
      yum: name=httpd
    - name: copy config file
      copy: src=/app/httpd.conf dest=/etc/httpd/conf/ backup=yes
    - name: start httpd
      service: name=httpd state=started enabled=yes
EOF
=================================================================
---   剧本开始字段
- hosts: web   使用web主机组的主机
  remote_user: root   使用root的身份在被管理端执行剧本

  tasks:
    - name: install httpd  安装httpd的任务
      yum: name=httpd      使用yum模块安装httpd
	- name: copy config file   拷贝httpd配置文件到被管理端的任务
	  copy: src=/app/httpd.conf dest=/etc/httpd/conf/ backup=yes 把管理端的配置文件/app/httpd.conf配置文件拷贝到被管理端的/etc/httpd/conf目录并且把被管理端的httpd.conf做备份
    - name: start httpd  执行启动httpd的任务
      service: name=httpd state=started enabled=yes   使用service模块启动httpd,并且设置开机自启动
=================================================================
测试剧本
[root@ansible ansible]# ansible-playbook -C httpd.yml 

PLAY [web] ************************************************************************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************************************************************
ok: [192.168.2.196]
ok: [192.168.2.189]

TASK [install httpd] **************************************************************************************************************************************************************************
changed: [192.168.2.189]
changed: [192.168.2.196]

TASK [copy config file] ***********************************************************************************************************************************************************************
changed: [192.168.2.189]
changed: [192.168.2.196]

TASK [start httpd] ****************************************************************************************************************************************************************************
changed: [192.168.2.196]
changed: [192.168.2.189]

PLAY RECAP ************************************************************************************************************************************************************************************
192.168.2.189              : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.2.196              : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
#执行剧本---------------------------------------------------------------------------------------------------

[root@ansible ansible]# ansible-playbook  httpd.yml 

PLAY [web] ************************************************************************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************************************************************
ok: [192.168.2.196]
ok: [192.168.2.189]

TASK [install httpd] **************************************************************************************************************************************************************************
changed: [192.168.2.189]
changed: [192.168.2.196]

TASK [copy config file] ***********************************************************************************************************************************************************************
changed: [192.168.2.196]
changed: [192.168.2.189]

TASK [start httpd] ****************************************************************************************************************************************************************************
changed: [192.168.2.196]
changed: [192.168.2.189]

PLAY RECAP ************************************************************************************************************************************************************************************
192.168.2.189              : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.2.196              : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

#检查启动成功
[root@ansible ansible]# ansible web -m shell -a "ss -lnt|grep 8080"
192.168.2.196 | CHANGED | rc=0 >>
LISTEN     0      511         :::8080                    :::*                  

192.168.2.189 | CHANGED | rc=0 >>
LISTEN     0      511         :::8080                    :::*
赞(0) 打赏
未经允许不得转载:YYQ运维技术博客_运维的工作学习之路 » 使用ansible的playbook部署httpd用自己指定的配置文件启动
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

运维devops

联系我们关于本博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏