Ansible角色编译安装Apache

  • 两台虚拟机
  • 准备工作
  • 创建角色框架
  • 测试

两台虚拟机

控制主机 192.168.229.143
受控主机 192.168.229.130

准备工作

#进入/opt/目录
[root@localhost ~]# cd /opt/
#复制配置文件到当前目录下
[root@localhost opt]# cp /etc/ansible/ansible.cfg .
#更改文件内容
[root@localhost opt]# head -15 ansible.cfg | tail -2
inventory      = inventory #修改为 清单文件inventory
#library        = /usr/share/my_modules/# 创建清单文件
[root@localhost opt]# vim inventory
[webservers]
web.example.com# 创建剧本
[root@localhost opt]# vim main.yml
---
- hosts: web.example.comroles:- httpd# 创建角色roles目录
[root@localhost opt]# mkdir roles# 整体架构
[root@localhost opt]# ls
ansible.cfg  inventory  main.yml  roles### /etc/hosts
[root@localhost httpd]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.229.130 web.example.com## ping 受控主机是否能通信
[root@localhost opt]# ansible all -m ping
web.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"
}

创建角色框架

# 进入 角色roles目录
[root@localhost opt]# cd roles/
#使用ansible-galaxy init来创建新角色的目录结构 取名为httpd
[root@localhost roles]# ansible-galaxy inti httpd
#httpd目录框架
[root@localhost roles]# ls httpd/
defaults  files  handlers  meta  README.md  tasks  templates  tests  vars# 第一步可以先写tasks任务
[root@localhost httpd]# cat tasks/main.yml
---
- name: create user apacheuser:name: apachestate: presentsystem: yescreate_home: noshell: /sbin/nologin
- name: install depend packageyum:name: "{{ item }}"state: presentloop: "{{ apache_depend_pkg }}"
- name: provide software packageunarchive:src: "{{ item }}"dest: /opt/loop: "{{ apache_software_pkg }}"- name: test {{ install_dir }} is existcommand: test -d {{ install_dir }}register: resultignore_errors: yes
- name: provide script filetemplate:src: files/install.sh.j2dest: /opt/install.showner: rootgroup: rootmode: 0755
- name: install apacheshell: /opt/install.shwhen: result['rc'] != 0ignore_errors: yes
- name: provide service filetemplate:src: files/httpd.service.j2dest: /usr/lib/systemd/system/httpd.service
- name: provide virtual host filetemplate:src: templates/httpd-vhosts.conf.j2dest: "{{ install_dir }}/conf/extra/httpd-vhosts.conf"notify:- restart httpd
- name: include virt host filelineinfile:path: "{{ install_dir }}/conf/httpd.conf"state: presentline: Include conf/extra/httpd-vhosts.confnotify:- restart httpd
- name: provide webcopy:src: files/webdest: /usr/local/apache/htdocs/
- name: start apacheservice:name: httpdstate: startedenabled: yes
- name: off firewalldservice:name: firewalldstate: stoppedenabled: no
[root@localhost httpd]# # dfaults目录内容
[root@localhost httpd]# cat defaults/main.yml
---
install_dir: /usr/local/apache
PORT: 80
web_domain: web.example.com# files目录内容
[root@localhost httpd]# ls files/
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz  httpd.service.j2  install.sh.j2  web# handlers目录内容
[root@localhost httpd]# cat handlers/main.yml
---
- name: restart httpdservice:name: httpdstate: restarted# templates 目录内容
[root@localhost httpd]# cat templates/httpd-vhosts.conf.j2
<VirtualHost *:{{ PORT }}>DocumentRoot "{{ install_dir }}/htdocs/web"ServerName {{ web_domain }}ErrorLog "logs/{{ web_domain }}-error_log"CustomLog "logs/{{ web_domain }}-access_log" common
</VirtualHost># vars目录内容
[root@localhost httpd]# cat vars/main.yml
---
apache_depend_pkg:- openssl-devel- pcre-devel- expat-devel- make- gcc- gcc-c++
apache_software_pkg:- apr-1.7.0.tar.gz- apr-util-1.6.1.tar.gz- httpd-2.4.53.tar.gz## 其他目录没有用到可以删除、也可以不删、看个人。

测试

使用域名访问web.example.com

Ansible角色编译安装Apache相关推荐

  1. CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛

    这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...

  2. linux apache 安装 rewrite,linux下单独编译安装Apache rewrite_module

    Redhat linux下单独编译安装Apache rewrite_module Apache已经编译安装完了,今天弄了个lifebox,装完后发现必须得用rewrite,所以就给它装了个~~ 找到a ...

  3. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  4. 用Linux虚拟机手工编译安装Apache

    用Linux虚拟机手工编译安装Apache Apache网站服务器:作为LAMP架构的前端,是一款功能强大.稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页.图片等文件内容. 实 ...

  5. centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL

    64位CentOS 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  6. CENTOS编译安装APACHE 2.4.6笔记

    之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...

  7. Centos编译安装Apache 2.4.6笔记 配置

    转载链接:http://www.onepx.com/centos-apache-246.html 之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 201 ...

  8. linux14.04 Apache,Ubuntu 14.04编译安装Apache

    Ubuntu下编译安装apache需要预先编译安装多个依赖件,包括:apr, apr-util,pcre,zlib-devel,等,相当麻烦,记录于此备查. 由于Ubuntu系统默认安装时没有安装C+ ...

  9. 编译安装Apache、php、xcache、FastCGI及相关整合

    一:编译php工作在xcache模式下 在编译安装之前,要首先确保其安装环境,需要安装相关的开发环境的包组"Development tools"和"Server Plat ...

最新文章

  1. 错误代码为0xC000218,0x00000051的蓝屏错误,或是提示 System32/config missing之类的注册表错误...
  2. python爬虫从基础到实战-2019-08-05 《python爬虫开发:从入门到实战》
  3. 管理者指南:别让忙碌伤害了你
  4. 2017年第八届蓝桥杯C/C++ A组国赛 —— 第四题:填字母游戏
  5. python包路径有几个_python的搜索路径与包(package)
  6. 17-mysql-数据定义语言-ddl
  7. IP-GUARD内网安全监管系统
  8. 开源框架Struts:FormBean滴那些事儿
  9. 小学生计算机考试软件,中小学生准考证制作打印软件
  10. java -jar 设置环境变量_java 配置环境变量
  11. Excel表格如何筛选重复内容(筛选重复数据的方法)
  12. LHS查询 RHS查询
  13. 下载excel表格后缀名为.do形式
  14. 检测色卡饱和度和色彩偏差
  15. 计算机在地理科学中的作用,中学地理教学中工具的重要性—胡阳新推荐
  16. 使用curl工具通过Gopher协议发送GET请求
  17. CSS通用样式2——Flex布局
  18. 十年远征:一个云操作系统的光荣与梦想
  19. Day020 - pdf合并与excel/csv读取写入
  20. 【POJ 1788 --- Building a New Depot】

热门文章

  1. 如何快速在网上赚到第1桶金
  2. flinksql获取系统当前时间搓_sql 时间戳
  3. 林肯公园 震撼numb
  4. Zhou_Zy's OI life.
  5. 在一个静态方法内调用一个非静态成员为什么是非法的
  6. C语言伽罗华域乘法,[转载]伽罗瓦域上的乘法
  7. 无聊时怎么办,那是因为你没遇上这5款打发时间的神器!
  8. 数据挖掘作业学习学习笔记-电商产品评论数据情感分析
  9. 《PHP微服务练兵》系列
  10. shell 免杀aspx_Webshell免杀