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 ...
随机推荐
- IntelliJ IDEA 设置类和方法注释
一.在创建类和文件的时候加注释 1.创建类 在右侧输入: 1 /** 2 * 3 * @author ${USER} 4 * @date ${YEAR}-${MONTH}-${DAY} ${TIME} ...
- 数据库知识 DDL/DML/DCL
DDL DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性 ...
- centos部署Django一:环境搭建
前言: 参考文档: https://www.cnblogs.com/djangocn/p/9538551.html https://www.icode9.com/content-3-546765.ht ...
- HuffmanTree,哈夫曼树的原理和c++实现
目录 一.什么是哈夫曼树 二.构造哈夫曼树 三.路径.编码.解码 四.代码 一.什么是哈夫曼树 哈夫曼树又称为最优树. 通过权值来构造树,权值越大,离根节点越近 经常用于无损压缩算法 用于需要优化存储 ...
- 支持API 9的Sample已上新,速来拿走
原文:https://mp.weixin.qq.com/s/sPDG5sG5F_gTp0cE1VV3gQ,点击链接查看更多技术内容. 今年的华为开发者大会上我们发布了HarmonyOS 3.1 D ...
- k8s之存储卷OpenEBS
一.OpenEBS简介 OpenEBS 是一种开源云原生存储解决方案,托管于 CNCF 基金会,目前该项目处于沙箱阶段. OpenEBS能够将Kubernetes工作节点上可用的住何存储转换为术卷或分 ...
- JDK 19新特性 & JDK 多版本安装切换配置
新的JDK 19包含如下7个新的特性: 转自:JDK19中比较重要的新特性-电子发烧友网 JEP 405: Record Patterns(Record模式) JEP 422: Linux/RISC- ...
- 重新点亮shell————周期性脚本[八]
前言 简单介绍一下周期性脚本 正文 周期性脚本之前先介绍一下信号. 捕获信号脚本的编写: kill 默认会发送15号信号给应用程序 ctrl+c 发送2号信号给应用程序 9号信号不可阻塞信号 所以只有 ...
- c# ManualResetEventSlim
前言 后续会把异步编程的ManualResetEventSlim 深入写完,先简单介绍一下吧. ManualResetEventSlim 有set 方法和 reset .wait.dispose方法. ...
- 重新整理数据结构与算法(c#)——算法套马踏棋算法[三十三]
前言 马踏棋盘 概念在这,不做过多复述. https://baike.sogou.com/v58959803.htm?fromTitle=马踏棋盘 思路是这样子的,一匹马有上面几种做法,然后进行尝试, ...