Centos 7.6 下利用ansible自动化安装httpd
参考资料:
Ansible中文权威指南:
http://www.ansible.com.cn/docs/intro.html
一、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)
一:管理机(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
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:~/
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 #模块操作

测试:
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端口已开




浙公网安备 33010602011771号