欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Ansible之使用角色一键部署httpd并检查部署结果

发布时间:2025/4/16 编程问答 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Ansible之使用角色一键部署httpd并检查部署结果 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

规划

角色:webser
任务: 111为ansible主节点,112,113为被控节点。在ansible主节点远程一键安装部署httpd,要求运行端口为99,根目录为/var/www,域名为其节点的IP地址,运行者身份是apache,部署测试页面(index.html),并检查是否部署成功要求有返回信息。

一、安装ansible并配置各节点互信

Ansible简单介绍及安装部署详解已讲解,有详细步骤这里不再演示。

二、创建并配置角色

  • 创建工作目录
  • [root@ser1 ~]# mkdir /project/{roles,inventory} -pv [root@ser1 ~]# mkdir /project/roles/webser/{tasks,files,templates,vars} -pv[root@ser1 /]# tree /project/ /project/ ├── inventory └── roles└── webser├── files├── tasks├── templates└── vars7 directories, 0 files
  • 准备模板文件,即apache的配置文件
  • [root@ser1 ~]# cp /etc/httpd/conf/httpd.conf /project/roles/templates/httpd.conf.j2 # 修改配置文件的内容 [root@ser1 ~]# vim /project/roles/webser/templates/httpd.conf.j2 Listen {{ port }} User {{ user }} Group {{ user }} ServerName {{ ansible_eth0.ipv4.address }}[root@ser1 ~]# grep "^[a-zA-Z]" /project/roles/webser/templates/httpd.conf.j2 ServerRoot "/etc/httpd" Listen {{ port }} Include conf.modules.d/*.conf User {{ user }} Group {{ user }} ServerAdmin root@localhost ServerName {{ ansible_eth0.ipv4.address }} DocumentRoot "{{ root }}" ErrorLog "logs/error_log" LogLevel warn AddDefaultCharset UTF-8 EnableSendfile on IncludeOptional conf.d/*.conf
  • 创建web页面测试文件
  • [root@ser1 ~]# echo "<h1> test page</h1>">/project/roles/webser/files/index.html
  • 编写用于做健康检查的脚本
  • [root@ser1 ~]# cd /project/roles/webser/files/ [root@ser1 files]# vim check.sh #!/bin/bash URL=$1 PORT=$2curl -I http://$1:$2/index.html |grep "200 OK" &>/dev/nullif [ $? -eq 0 ];thenecho "$1 status is ok" elseecho "$1 status is error" fi
  • 创建job
  • [root@ser1 files]# cd /project/roles/webser/tasks/ [root@ser1 tasks]# vim main.yaml --- - name: install httpsyum: name=httpd state=present - name: make configrantion filetemplate: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf - name: start httpdservice: name=httpd state=restarted - name: install test pagecopy: src=index.html dest={{ root }} - name: make health checkshell: sh roles/webser/files/check.sh {{ ansible_eth0.ipv4.address }} {{ port }}delegate_to: localhostregister: health_status - debug: msg="{{ health_status }}"
  • 创建主机清单列表
  • [root@ser1 tasks]# cd /project/inventory/ [root@ser1 inventory]# vim webser [webser] 10.220.5.112 10.220.5.113
  • 创建入口文件
  • [root@ser1 inventory]# cd /project/ [root@ser1 project]# vim webser.yaml <<<该文件需要和roles目录同级 --- - host: allremote_user: rootroles:- webser

    三、运行palybook

    [root@ser1 files]# cd /project/ [root@ser1 project]# ansible-playbook -i ./inventory/webser ./webser.yaml -e port=99 -e user=apache -e root=/var/www

    运行结果是成功的,并且到112,113节点查看也看到httpd安装部署成功,从浏览器访问后端节点也是能够访问到测试页面的,至此通过ansible使用角色一键部署静态网站就大功告成了。

    ------做运维之前很矫情的小年轻-----

    总结

    以上是生活随笔为你收集整理的Ansible之使用角色一键部署httpd并检查部署结果的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。