利用Ansible对服务器自动化部署httpd,以及配置和启动

1. Ansible的安装与配置

centos/rehl下:
添加EPEL源,yum方式安装ansible
在自行配置yum源后:

sudo yum install -y ansible

Ubuntu下:

sudo apt-get install ansible

测试:

vim /etc/ansible/hosts  #指定远程主机

在这里插入图片描述
ansible管理主机需要与这些主机提前做好ssh免密

#以root用户执行ping存活检测
ansible prod -m ping -u root

在这里插入图片描述
结果为绿色则为成功

2. Ansible Playbook编写

剧本(playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
运行原理:把命令翻译成shell命令,拷贝到目标主机(/root/.ansible/tmp/下),再执行,执行完毕后删除tmp文件。

playbook是由一个或多个play组成的列表。play的主要功能在于将事先归并为一组的主机装扮成通过ansible中的task定义好的角色。从根本上讲,所谓task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可让他们联合起来按事先编排的机制完成某一任务。

PS:有一个形象的比如,Ansible中的模块类似于Linux下的命令,而Ansible的Playbook则类似于Linux下的shell脚本。Shell脚本将各个Linux命令组合起来,以此实现复杂的功能。

在Ansible中,一个play必须包含两部分内容,hosts,tasks,play配置文件

playbook编写如下:

---        #yaml的默认开头格式
- hosts: prod

  tasks:
          - name: install httpd        # task名称
            yum:                  #使用yum包管理软件包
                    name: httpd     #软件包的名称,可以为一个url路径,或者本地一个rpm包的路径
                    state: present    #状态:安装

          - name: configure httpd
            copy:         #复制文件
                    src: httpd.conf     #源文件
                    dest: /etc/httpd/conf/httpd.conf    #目标文件路径
            notify: restart httpd     #notify:当任务执行完毕后,通知handler section 中的任务模块

          - name: start httpd
            service:              #用于管理服务
                    name: httpd         #服务名称
                    state: started     #启动服务

  handlers:            #Handlers 是由通知者进行 notify, 如果没有被 notify,handlers 不会执行。
  #不管有多少个通知者进行了 notify,等到 play 中的所有 task 执行完成之后,handlers 也只会被执行一次。
          - name: restart httpd   # handlers名称
            service:
                    name: httpd
                    state: restarted

3. 服务器准备

测试中的三个服务器采用了rehl7.6的系统,并配置好相应的yum源
这里显示server1的配置:
在这里插入图片描述
客户端与服务器的免密见
ssh免密配置

4. ansible自动化部署

首先检测playbook语法:

ansible-playbook --syntax-check http_playbook.yml

在这里插入图片描述
语法没有错误,执行playbook:

ansible-playbook http_playbook.yml

在这里插入图片描述
验证结果:
在服务器端设置防火墙策略,对外开启80端口,即可在客户端访问服务器的80端口:
在这里插入图片描述
结果正确,自动化部署完成

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页