Centos 7.6 下利用ansible自动化安装httpd服务

一、ansible简介
  ansible是一款由python语言编写的一款自动化运维工具,它集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。它的创始人,Michael DeHaan(cobbler与Func软件的作者),他在2012年3月9日发布了ansible 0.01版。2015年10月17日被RedHat宣布收购。
二、ansible的特点
  1、无客户端,只需安装SSH、python即可,其中python建议版本2.6.6以上
  2、基于openssh通信,底层基于ssh协议(Windows基于powershell)
  3、支持密码和SSH认证,因可以通过系统帐户密码认证或公钥私钥认证,所以整个过程简单、方便、安全。
  4、支持Windows,但仅支持被管理端是Windows,管理端必须是Linux系统 
  5、模块化:调用特定的模块,完成特定任务
  6、支持playbook编排任务(类似shell中的脚本)
  7、幂等性:一个任务执行一遍和执行N遍的效果一样,不因重复执行带来意外情况
  8、可以使用任何编程语言编写模块(python可以调用其他语言的库)
  9、YAML格式,编排任务,支持丰富的数据结构
三、ansible是如何工作的?
  Ansible没有客户端,因此底层通信依赖系统软件,在Linux系统下基于openssh通信,在Windows下基于powershell,管理端必须是Linux系统,使用者认证通过后在管理节点通过ansible工具调用各应用模块指令推送至被管理端执行,并在执行完毕后自动删除产生的临时文件。
  
实验准备:

两台主机:
一台管理机(192.168.6.129)
一台客户机(192.168.6.130)

自动化安装httpd服务并且开机自动启动

一:管理机(192.168.6.129)

1.安装ansible服务 
yum -y install ansible
2.yum 仓库配置
[base]                     
name=cdrom repo            
baseurl=file:///mnt/cdrom  
enabled=1                  
gpgcheck=1                 
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7   

3.配置清单
/etc/ansible/ #目录
/etc/ansible/hosts #主机清单
/etc/ansible/ansible.cfg #主配置文件

在这里插入图片描述
4.实现远程主机的连接 (在192.168.6.129主机上)

ansible支持密码和SSH认证,因可以通过系统帐户密码认证或公钥私钥认证,所以整个过程简单、方便、安全,因此这里可以通过基于ssh 的Key认证来实现远程连接

ssh-genkey 
ssh-copy-id 192.168.6.129(主机端)
scp -r .ssh 192.168.6.130:~/ 

5.配置主机清单

Vim /etc/ansible/ansible/hosts

[websrvs]  #组名
192.168.6.130 #远程主机IP

测试:
先尝试下是否ping通192.168.6.130服务器

[root@Centos7 ansible]# ansible websrvs -m ping

成功:
在这里插入图片描述
6.配置自动化部署脚本 install_httpd.yml (对格式敏感)

---
  - hosts: websrvs    # /etc/ansible/hosts 文件配置中的websrvs
    remote_user: root # 用那个用户执行操作

    tasks:
      - name: copy epel file    # 简介
        copy: src=/etc/yum.repos.d/test.repo dest=/etc/yum.repos.d/test.repo #模块操作
      - name: clean yum    # 简介
        shell: yum clean all  #模块操作
      - name: flush yum     # 简介
        shell: yum repolist   #模块操作  
      - name: install httpd    # 简介
        yum: name=httpd    #模块操作
      - name: start httpd     # 简介
        service: name=httpd state=started enabled=yes  #模块操作

在这里插入图片描述
测试:

[root@Centos7 ansible]# ansible-playbook -C install_httpd.yml

7. 自动化安装ansible 服务
查看ss -ntl 状态

80端口没开 httpd 服务是80端口的
在这里插入图片描述
80端口没开 httpd 服务是80端口的

在这里插入图片描述
安装服务

ansible-playbook install_httpd.yml

在这里插入图片描述
查看客户机(192.168.6.130)80端口已开
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值