ansible系列(32)--ansible实战之部署WEB集群架构(2)
1. 基础环境role编写
创建基础环境
role的相关目录:[root@xuzhichao cluster-roles]# mkdir base-module/{tasks,handlers,files,templates,meta} -p
编写
tasks的任务文件:[root@xuzhichao cluster-roles]# cat base-module/tasks/yum_repo.yml
#配置yum仓库
#
#1.配置base的yum仓库
- name: Configuer Base Repo
yum_repository:
name: Base
description: BASE YUM repo
baseurl: file:///misc/cd
gpgcheck: 1
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #2.配置epel的yum仓库
- name: Configuer Eepl Repo
yum_repository:
name: Epel
description: EPEL YUM REPO
baseurl: https://mirrors.aliyun.com/epel/7/$basearch
gpgcheck: 1
gpgkey: http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7 #3.配置nginx的yum仓库
#注释掉nginx的yum源是因为该yum源不稳定,影响安装其他软件,后期nginx采用编译方式进行安装
#- name: Configuer Nginx Repo
# yum_repository:
# name: Nginx
# description: NGINX YUM REPO
# baseurl: http://nginx.org/packages/centos/$releasever/$basearch/
# gpgcheck: 1
# gpgkey: https://nginx.org/keys/nginx_signing.key
# when: ( ansible_hostname is match ("web*") ) or ( ansible_hostname is match ("lb*") ) #4.配置PHP的yum仓库,通过rpm方式进行安装
- name: Configuer PHP Repo
shell:
cmd: test -f /etc/yum.repos.d/webtatic.repo || ( rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm )
when: (ansible_hostname is match ("web*")) [root@xuzhichao cluster-roles]# cat base-module/tasks/install_base_soft.yml
#安装基础软件包
#
- name: Install Base SoftWare
yum:
name: "{{ item }}"
state: present
loop:
- wget
- httpd-tools
- lrzsz
- nfs-utils
- bind-utils
- net-tools
- unzip
- vim
- gcc
- mariadb
- MySQL-python
- git
- autofs
- bash-completion.noarch
- expect
ignore_errors: yes [root@xuzhichao cluster-roles]# cat base-module/tasks/create_user.yml
#创建nginx的web账号
#
- name: Create Process Group
group:
name: "{{ web_group }}"
gid: "{{ web_gid }}" - name: Create Process Group
user:
name: "{{ web_user }}"
uid: "{{ web_uid }}"
group: "{{ web_group }}"
create_home: no
system: yes [root@xuzhichao cluster-roles]# cat base-module/tasks/disable_firewalld_selinux.yml
#关闭防火墙和selinux
#
- name: Disable Firewalld
systemd:
name: firewalld
state: stopped
enabled: yes - name: Disable Selinux
selinux:
state: disabled [root@xuzhichao cluster-roles]# cat base-module/tasks/main.yml
- include: yum_repo.yml
- include: install_base_soft.yml
- include: create_user.yml
- include: disable_firewalld_selinux.yml
变量文件如下:
[root@xuzhichao cluster-roles]# cat group_vars/all
#创建基础环境变量
web_group: nginx
web_gid: 887
web_user: nginx
web_uid: 887
编写
playbook主文件:[root@xuzhichao cluster-roles]# cat wordpress_site.yml
- hosts: all
roles:
- role: base-module
tags: base-module
运行
palybook:[root@xuzhichao cluster-roles]# ansible-playbook wordpress_site.yml
遗留问题:每次执行
palybook都会重复执行PHP仓库的安装任务,when和run_once参数一起使用有问题。
ansible系列(32)--ansible实战之部署WEB集群架构(2)的更多相关文章
- Linux Web集群架构详细(亲测可用!!!)
注意:WEB服务器和数据库需要分离,同时WEB服务器也需要编译安装MySQL. 做集群架构的重要思想就是找到主干,从主干区域向外延展. WEB服务器: apache nginx 本地做三个产品 de ...
- CentOS7-自动化部署web集群
一.项目要求 1.创建role,通过role完成项目(可能需要多个role) 2.部署nginx调度器(node2主机) 3.部署2台lnmp服务器(node3,node4主机) 4.部署mariad ...
- Centos 7 部署lnmp集群架构
前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合: lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收 ...
- (二)Kubernetes kubeadm部署k8s集群
kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ...
- Ansible自动化部署K8S集群
Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...
- 003 ansible部署ceph集群
介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...
- ansible playbook部署ELK集群系统
一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...
- Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群
Redis总结(五)缓存雪崩和缓存穿透等问题 前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...
- 实战Centos系统部署Codis集群服务
导读 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可 ...
- kubernetes系列03—kubeadm安装部署K8S集群
本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...
随机推荐
- .NET Core WebApi 多语言本地化,动态切换多语言
.NET Core WebApi 多语言本地化,动态切换多语言 原生的.net core webapi 动态多语言本地话 具体更多详细内容,可以参考官方文档 首先看效果图 整体项目结构图 开始前需要讲 ...
- 动态库 DLL 封装五:dll中弹出一个dialog窗口
操作步骤: 1.在dll项目中,点击 资源,新建一个 dialog 2.cpp文件 CDialog dlg(IDD_STA); // 显示窗口 dlg.Create(IDD_STA, 0); dlg. ...
- JS判断浏览器是否是IE
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python mmsql连接支持
前言 因为我使用的是mmsql数据库,因为遇到一点坑,所以发布出来. 正文 准备工作: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql 下载对应 ...
- 涂色-【BFS】
涂色 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间.给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newC ...
- 实训篇-Html-表单练习
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 向量数据库Chroma学习记录
一 简介 Chroma是一款AI开源向量数据库,用于快速构建基于LLM的应用,支持Python和Javascript语言.具备轻量化.快速安装等特点,可与Langchain.LlamaIndex等知名 ...
- javascript现代编程系列教程之二——IIFE
IIFE(Immediately Invoked Function Expression,立即执行函数表达式)是一个在定义后立即执行的JavaScript函数.它具有以下特点: 是一个匿名函数:通常情 ...
- 力扣612(MySQL)-平面上的最近距离(中等)
题目: 表 point_2d 保存了所有点(多于 2 个点)的坐标 (x,y) ,这些点在平面上两两不重合.写一个查询语句找到两点之间的最近距离,保留 2 位小数. 最近距离在点 (-1,-1) 和( ...
- 力扣33(java&python)-搜索旋转排序数组(中等)
题目: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 ...