Ansible playbook编写Apache角色
2024-08-26 21:46:13
编写Apache角色;使用源码安装
在files中下载扩展包和安装包
[root@localhost project]# ls roles/httpd/files/
apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.46.tar.gz pcre-8.40.tar.gz
在taskstasks目录中写入main.yml文件
[root@localhost project]# vim roles/httpd/tasks/main.yml
--
#安装环境
- name: Install environment
yum:
name: "{{ item }}"
state: present
loop:
- make
- gcc
- gcc-c++
- expat-devel
- wget
#安装APR拓展包
- name: Install apr package
copy:
src: ../files/apr-1.6.5.tar.gz
dest: /root/
notify:
- compile apr
#安装apr-util 拓展包
- name: Install apr-util package
copy:
src: ../files/apr-util-1.6.1.tar.gz
dest: /root/
notify:
- compile apr-util
#安装PCRE拓展包
- name: Install pcre package
copy:
src: ../files/pcre-8.40.tar.gz
dest: /root/
notify:
- complie pcre
#安装httpd软件包
- name: Install Apache package
copy:
src: ../files/httpd-2.4.46.tar.gz
dest: /root/
notify:
- Complie Apache
- Changed configuration files
- Start Apache
- set up link
#解压apt、apt-util、pcre、apache压缩包
- name: unzip package
shell: "{{ item }}"
loop:
- tar -zxvf /root/apr-1.6.5.tar.gz
- tar -zxvf /root/apr-util-1.6.1.tar.gz
- tar -zxvf /root/pcre-8.40.tar.gz
- tar -zxvf /root/httpd-2.4.46.tar.gz
#为Apache创建使用用户
- name: Create user for Apache
user:
name: "{{ user_name }}"
state: present
create_home: no
system: yes
在handlers目录中写入main.yml文件
[root@localhost project]# vim roles/httpd/handlers/main.yml
---
#预编译、编译、安装APR
- name: compile apr
shell: "{{ item }}"
loop:
- ./configure --prefix=/usr/local/apr
- make && make install
args:
chdir: "{{ package_apr }}"
#预编译、编译、安装apr-util
- name: compile apr-util
shell: "{{ item }}"
loop:
- ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr
- make && make install
args:
chdir: "{{ package_apr_util }}"
#预编译、编译、安装pcre
- name: complie pcre
shell: "{{ item }}"
loop:
- ./configure --prefix=/usr/local/pcre
- make && make install
args:
chdir: "{{ package_pcre }}"
#预编译、编译、安装Apache
- name: Complie Apache
shell: "{{ item }}"
loop:
- ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
- make && make install
args:
chdir: "{{ package_httpd }}"
#修改配置文件
- name: Changed configuration files
shell: sed -i "s/#ServerName www.example.com:80/ServerName localhost:80/" httpd.conf
args:
chdir: /usr/local/httpd/conf
#给Apache启动脚本创建软连接到普通用户的环境变量
- name: set up link
shell: 'ln -s /usr/local/httpd/bin/apachectl /usr/local/bin/apachectl'
#脚本控制启动httpd
- name: Start Apache
shell: apachectl start
在vars目录中写变量文件
[root@localhost project]# vim roles/httpd/vars/main.yml
---
user_name: apache
package_apr: apr-1.6.5
package_apr_util: apr-util-1.6.1
package_pcre: pcre-8.40
package_httpd: httpd-2.4.46
写需要执行的playbook.ymlyml文件
[root@localhost project]# cat playbook.yml
---
- name: Install Httpd
hosts: all
roles:
- httpd
执行playbook.yml文件
[root@localhost project]# ansible-playbook playbook.yml
PLAY [Install Httpd] ******************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [client.example.com]
TASK [httpd : Install environment] ****************************************************************************************************************************************
changed: [client.example.com] => (item=make)
changed: [client.example.com] => (item=gcc)
changed: [client.example.com] => (item=gcc-c++)
changed: [client.example.com] => (item=expat-devel)
changed: [client.example.com] => (item=wget)
............
执行完后,在浏览器页面访问
最新文章
- android退出MainActivity后onDestroy不回调
- JAVA学习笔记(1-32)
- Win7下使Users数据与程序分离
- unicode 编码总结
- select2的基本用法
- Angular2案例rebirth开源
- 浅谈hbase表中数据导出导入(也就是备份)
- python学习===从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
- STM32F10XX存储器细节
- 谈一次java web系统的重构思路
- 三、如何设置npm镜像
- mysql单表删除记录DELETE
- python---用链表结构实现有序和无序列表的几个功能
- JavaScript的组成 | DOM/BOM
- ElasticSearch 批量增加索引
- 简单的三道shell例题
- 安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)
- 再谈Scala集合
- Java 从业一年的心得体会
- Python 文件类型
热门文章
- 热更新解决方案--tolua学习笔记
- JDBC_01_JDBC基础概念
- Day17_102_IO_BufferedReader
- Ubuntu 20.04 简述环境配置&;美化
- JMeter 实战案例
- IOS Widget(1):概述
- Python Basics with numpy (optional)
- 1003 Emergency (25分)
- 【小白向】基于Docker使用Gogs,Drone以及drone-runner-docker的自动化部署
- hdu3793 判断对称(水题)