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

参考资料:

Ansible中文权威指南:

http://www.ansible.com.cn/docs/intro.html

 

一、ansible简介

ansible是一款由python语言编写的一款自动化运维工具,它集合了众多运维工具(puppetcfenginecheffuncfabric)优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。它的创始人,Michael DeHaancobblerFunc软件的作者),他在201239日发布了ansible 0.01版。20151017日被RedHat宣布收购。

  二、ansible的特点

  1、无客户端,只需安装SSHpython即可,其中python建议版本2.6.6以上

  2、基于openssh通信,底层基于ssh协议(Windows基于powershell

  3、支持密码和SSH认证,因可以通过系统帐户密码认证或公钥私钥认证,所以整个过程简单、方便、安全。

  4、支持Windows,但仅支持被管理端是Windows,管理端必须是Linux系统 

  5、模块化:调用特定的模块,完成特定任务

  6、支持playbook编排任务(类似shell中的脚本)

  7、幂等性:一个任务执行一遍和执行N遍的效果一样,不因重复执行带来意外情况

  8、可以使用任何编程语言编写模块(python可以调用其他语言的库)

  9YAML格式,编排任务,支持丰富的数据结构

  三、ansible是如何工作的?

  Ansible没有客户端,因此底层通信依赖系统软件,在Linux系统下基于openssh通信,在Windows下基于powershell,管理端必须是Linux系统,使用者认证通过后在管理节点通过ansible工具调用各应用模块指令推送至被管理端执行,并在执行完毕后自动删除产生的临时文件。

 

实验准备:

 

两台主机:

 

一台管理机(192.168.6.129)一台客户机(192.168.6.130)

一:管理机(192.168.6.129)

安装ansible服务(这里需要用到光盘的镜像文件) 启动autofs服务

1.yum 仓库配置 (此处的可以加多一个阿里云epel )

1 [base]                     
2 name=cdrom repo            
3 baseurl=file:///mnt/cdrom  
4 enabled=1                  
5 gpgcheck=1                 
6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7 
View Code

2.安装ansible服务

1 yum -y install ansible 

3.配置清单

/etc/ansible/  #目录

/etc/ansible/hosts #主机清单

/etc/ansible/ansible.cfg #主配置文件

4.实现远程主机的连接

 

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

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

5.配置主机清单

1 Vim /etc/ansible/ansible/hosts
2 
3 [websrvs]  #组名
4 192.168.6.130 #远程主机IP

测试:

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

 

 6.配置自动化部署脚本 install_httpd.yml (对格式敏感)

 1 ---
 2   - hosts: websrvs    # /etc/ansible/hosts 文件配置中的websrvs
 3     remote_user: root # 用那个用户执行操作
 4 
 5     tasks:
 6       - name: copy epel file    # 简介
 7         copy: src=/etc/yum.repos.d/test.repo dest=/etc/yum.repos.d/test.repo #模块操作
 8       - name: clean yum    # 简介
 9         shell: yum clean all  #模块操作
10       - name: flush yum     # 简介
11         shell: yum repolist   #模块操作  
12       - name: install httpd    # 简介
13         yum: name=httpd    #模块操作
14       - name: start httpd     # 简介
15         service: name=httpd state=started enabled=yes  #模块操作
View Code

 

 测试:

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

7. 自动化安装ansible 服务

查看ss -ntl  状态

80端口没开 httpd 服务是80端口的

 

 80端口没开 httpd 服务是80端口的

 

 

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

 

 查看客户机(192.168.6.130)80端口已开

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-12-22 17:57  呱牛。  阅读(128)  评论(0)    收藏  举报