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仓库的安装任务,whenrun_once参数一起使用有问题。

ansible系列(32)--ansible实战之部署WEB集群架构(2)的更多相关文章

  1. Linux Web集群架构详细(亲测可用!!!)

    注意:WEB服务器和数据库需要分离,同时WEB服务器也需要编译安装MySQL. 做集群架构的重要思想就是找到主干,从主干区域向外延展. WEB服务器: apache nginx  本地做三个产品 de ...

  2. CentOS7-自动化部署web集群

    一.项目要求 1.创建role,通过role完成项目(可能需要多个role) 2.部署nginx调度器(node2主机) 3.部署2台lnmp服务器(node3,node4主机) 4.部署mariad ...

  3. Centos 7 部署lnmp集群架构

    前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合: lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收 ...

  4. (二)Kubernetes kubeadm部署k8s集群

    kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ...

  5. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  6. 003 ansible部署ceph集群

    介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...

  7. 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 ...

  8. Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群

    Redis总结(五)缓存雪崩和缓存穿透等问题   前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...

  9. 实战Centos系统部署Codis集群服务

    导读 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可 ...

  10. kubernetes系列03—kubeadm安装部署K8S集群

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

随机推荐

  1. Amazon免费CE2基于docker部署nginx,并实现访问

    在部署之前,请确保你已经申请好了CE2免费的服务器,网上的相关教程很多,可以自由参考. 一.使用xshell+公钥连接实例 1.打开xshell,导入密钥, 选择"工具" -> ...

  2. #期望dp#CF1810G The Maximum Prefix

    洛谷题面 CF1810G 分析 考虑最大前缀和满足两个条件,就是所有前缀和都不超过,以及一定有一个等于. 那么就要保证它能达到最大值且一直不能高于它 设 \(dp[i][j][0/1]\) 表示前 \ ...

  3. #Kruskal重构树,Dijkstra,倍增#洛谷 4768 [NOI2018]归程

    题目传送门 分析 首先Dijkstra是必需的(关于SPFA,它死了233) 无向图,所以先求出1号节点到所有点的距离,然后肯定希望起点能驾驶到离一号点最短的汽车可到的地方 但是怎么办,考虑海拔大的边 ...

  4. 高能有料 | 第二届OpenHarmony技术大会议程速递

       第二届开放原子开源基金会OpenHarmony技术大会如约而至 让我们一起 开封无限惊喜的技术成果 开放无限前沿的议题干货 开启无限可能的未来之门 点击此处报名参会!

  5. 数据库自增ID用完了会怎么样?

    记一个数据库方面的面试题:数据库自增ID用完了会怎么样? MySQL中 int 类型是4个字节,如果是有符号,那就是 [ -2^31 , 2^31-1 ], 如果是无符号,那就是 [ -2^31 , ...

  6. BiLSTM算法(一)

    原理分析: BiLSTM(双向长短期记忆网络) 是一种循环神经网络(RNN)的变体,它在自然语言处理任务中非常有效,其中包括给定一个长句子预测下一个单词. 这种效果的主要原因包括以下几点: 长短期记忆 ...

  7. mongodb基础整理篇————副本原理篇[外篇]

    前言 简单介绍一下副本集的原理篇. 正文 下面是几个基本的原理: 副本之间是如何复制的? mongodb 实现此功能的方式是保存操作日志,其中包含了主节点执行的每一次操作,这和mysql比较像. op ...

  8. redis 简单整理——CEO[十五]

    前文 简单介绍一下CEO. 正文 Redis3.2版本提供了GEO(地理信息定位)功能,支持存储地理位置信 息用来实现诸如附近位置.摇一摇这类依赖于地理位置信息的功能,对于需 要实现这些功能的开发者来 ...

  9. redis 简单整理——redis 准备篇[一]

    前言 简单整理一下redis. 正文 为什么使用redis? 速度快 1.1 内存执行 1.2 c语言编写,速度相对快一些 1.3 单线程,比较符合这种存储模式 2 丰富的数据结构 3 丰富的功能机制 ...

  10. c# vs 中如何修改类模板

    背景 在一些应用中,我们需要去修改我们的类模板,作为标记. 步骤 在这个目录下就是我们的模板: C:\Program Files\Microsoft Visual Studio 10.0\Common ...