Ansible角色编译安装Apache
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相关推荐
- CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛
这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...
- linux apache 安装 rewrite,linux下单独编译安装Apache rewrite_module
Redhat linux下单独编译安装Apache rewrite_module Apache已经编译安装完了,今天弄了个lifebox,装完后发现必须得用rewrite,所以就给它装了个~~ 找到a ...
- Ubuntu 16.04源码编译安装Apache 2.4.25教程
这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...
- 用Linux虚拟机手工编译安装Apache
用Linux虚拟机手工编译安装Apache Apache网站服务器:作为LAMP架构的前端,是一款功能强大.稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页.图片等文件内容. 实 ...
- 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. 卸载旧 ...
- CENTOS编译安装APACHE 2.4.6笔记
之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...
- Centos编译安装Apache 2.4.6笔记 配置
转载链接:http://www.onepx.com/centos-apache-246.html 之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 201 ...
- linux14.04 Apache,Ubuntu 14.04编译安装Apache
Ubuntu下编译安装apache需要预先编译安装多个依赖件,包括:apr, apr-util,pcre,zlib-devel,等,相当麻烦,记录于此备查. 由于Ubuntu系统默认安装时没有安装C+ ...
- 编译安装Apache、php、xcache、FastCGI及相关整合
一:编译php工作在xcache模式下 在编译安装之前,要首先确保其安装环境,需要安装相关的开发环境的包组"Development tools"和"Server Plat ...
最新文章
- 错误代码为0xC000218,0x00000051的蓝屏错误,或是提示 System32/config missing之类的注册表错误...
- python爬虫从基础到实战-2019-08-05 《python爬虫开发:从入门到实战》
- 管理者指南:别让忙碌伤害了你
- 2017年第八届蓝桥杯C/C++ A组国赛 —— 第四题:填字母游戏
- python包路径有几个_python的搜索路径与包(package)
- 17-mysql-数据定义语言-ddl
- IP-GUARD内网安全监管系统
- 开源框架Struts:FormBean滴那些事儿
- 小学生计算机考试软件,中小学生准考证制作打印软件
- java -jar 设置环境变量_java 配置环境变量
- Excel表格如何筛选重复内容(筛选重复数据的方法)
- LHS查询 RHS查询
- 下载excel表格后缀名为.do形式
- 检测色卡饱和度和色彩偏差
- 计算机在地理科学中的作用,中学地理教学中工具的重要性—胡阳新推荐
- 使用curl工具通过Gopher协议发送GET请求
- CSS通用样式2——Flex布局
- 十年远征:一个云操作系统的光荣与梦想
- Day020 - pdf合并与excel/csv读取写入
- 【POJ 1788 --- Building a New Depot】