ansible自动化 roles实现keepalived,haproxy,httpd高可用和负载均衡

ansible的roles角色编写nginx+keepalived高可用 1、简单说就是通过调用 roles: 所有的角色必须放在roles目录下,这个目录可以自定义位置,默认的位置在/etc/ansible/roles project: 具体的角色项目名称,比如nginx、tomcat、php files: 用来存放由copy模块或script模块调用的文件。 templates: 用来存放jinjia2模板,template模块会自... 阅读详情

一、基础

创建角色,初始化

vim /home/ansible/ansible/ansible.cfg
    roles_path = /etc/ansible/roles        指定角色目录
创建目录结构:
    mkdir /home/ansible/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p

roles目录结构:

role_name:名字
    files    存放copy或scripts等模块调用的函数
    tasks    定义各种tasks,要有main.yml文件,其他include包含调用
    handlers 定义各种handlers,要main.yml文件
    vars     定义variables,要main.yml文件
    templates存储由template模块调用的模版
    meta     定义当前角色的特殊设定及其依赖关系,要main.yml
    defaults 要有main.yml的文件,用于设定默认变量

 ansible-galaxy工具访问

ansible-galaxy 
        delete|import|info|init|install|list|login|remove|search|setup] 角色名称
    Options:
      -h, --help            show this help message and exit
      -c, --ignore-certs    Ignore SSL certificate validation errors.
      -s API_SERVER, --server=API_SERVER
                        The API server destination
      -v, --verbose         verbose mode (-vvv for more, -vvvv to enable
                        connection debugging)
      --version             show program's version number, config file location,
                        configured module search path, module location,
                        executable location and exit

二、示例

1、环境

172.25.17.100:serverkeepalived:master; haproxy
172.25.17.101:server1keepalived:backup; haproxy
172.25.17.102:server2webserver: httpd
172.25.17.103:server3webserver: httpd

2、.ansible-galaxy创建角色

角色分类:haproxy,apache,keepalived

初始化三个角色

cd /home/ansible/ansible

分组:
    vim hosts
        [manage]          server1,server2上主要负责调度
        server
        server1
     
       [webserver]        server3,server4上部署服务
        server2
        server3

mkdir roles           创建角色目录
cd roles
初始化三个角色:
    ansible-galaxy init haproxy        初始化haproxy角色
    ansible-galaxy init apache         初始化apache角色
    ansible-galaxy init keepalived     初始化keepalived角色

3、给不同的角色添加不同的任务...

角色结构:

1)、添加apache角色任务

##部署apache任务
vim roles/apache/tasks/main.yml
- name: install httpd
  yum:
    name: httpd
    state: present
- name: copy index.html
  copy: 
    content: "www.{{ ansible_facts['hostname'] }}.com"
    dest: /var/www/html/index.html

- name: configure httpd
  copy:
    src: templates/httpd.conf.j2        模版在roles/templates下边,就是http的配置文件
    dest: /etc/httpd/conf/httpd.conf
    owner: root
    group: root
    mode: 644
  notify: restart httpd

- name: start httpd firewalld
  service:
    name: "{{ item }}"
    state: started
  loop:
    - httpd
    - firewalld

- name: configure firewalld
  firewalld: 
    service: http
    permanent: yes
    immediate: yes
    state: enabled
##部署触发器
vim roles/apache/handlers/main.yml
- name: restart httpd
  service:
    name: httpd
    start: restarted

2)、添加haproxy角色任务

vim roles/haproxy/tasks/main.yml
- name: install haproxy
  yum:
    name: haproxy
    state: present

- name: coufigure haproxy
  template:
    src: templates/haproxy.cfg.j2        模版时haproxy的配置文件
    dest: /etc/haproxy/haproxy.cfg

- name: start haproxy
  service:
    name: haproxy
    state: started

##部署触发器
vim roles/haproxy/handlers/main.yml
- name: restart haproxy
  service:
    name: haproxy
    start: restarted

##修改haproxy的配置模版
vim roles/haproxy/templates/haproxy.cfg.j2
    frontend  main
        bind    *:80
        default_backend       webserver
    #---------------------------------------------------------------------
    backend webserver
        balance     roundrobin
    {% for host in groups['webserver'] %}        自动获取要调度的主机信息
        server {{ hostvars[host]['ansible_facts']['hostname']}} {{ hostvars[host]        ['ansible_facts']['eth0']['ipv4']['address']}}:80 check
    {% endfor %}

3)、添加keepalived角色任务

vim roles/keepalived/tasks/main.yml
- name: install keepalived
  yum:
    name: keepalived
    state: present

- name: coufigure keepalived
  template:
    src: templates/keepalived.conf.j2        模版时keepalived的配置文件
    dest: /etc/keepalived/keepalived.conf

- name: start keepalived
  service:
    name: keepalived
    state: started

##部署触发器
vim roles/keepalived/handlers/main.yml
- name: restart keepalived
  service:
    name: keepalived
    start: restarted

##修改keepalived的配置模版
vim roles/keepalived/templates/keepalived.conf.j2

! Configuration File for keepalived
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state {{ STATE }}         变量需要在角色的vars里边定义,或者直接在推送的yml文件中定义
    interface eth0
    virtual_router_id 200
    priority {{ PRIORITY }}    需要定义
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
	172.25.27.200         vip会漂移哦
    }
}

4、编写yml推送文件

vim ansible/playbook.yml
- hosts:all
  tasks:
  - import_role:
      name: apache
    when: ansible_hostname in groups['webserver']
  - import_fole:
      name: haproxy
    when: ansible_hostname in groups['manage']
  - import_role:
      name: keepalived
    vars:
      STATE: MASTER
      PRIORITY: 100
    when: ansible_hostname == 'server'
  - import_role:
      name: keepalived
    vars:
      STATE: BACKUP
      PRIORITY: 50
    when: ansible_hostname == 'server1'

5、推送

ansible-playbook playbook.yml                  部署服务,写好所有的文件,一条命令就可以部署高可用的集群服务,非常nice

从智能手机到汽车电子:聊聊IPC-9702/9704A标准如何帮我们搞定不同场景下的PCB可靠性设计 本文探讨了IPC-9702/9704A标准在智能手机和汽车电子等不同场景下的PCB可靠性设计应用。通过分析消费电子、汽车电子和工业设备中的应力特征,详细解读了IPC标准在应变识别和测试方法论中的核心价值,并提供了具体的轻量化设计策略和全生命周期验证方案,帮助工程师提升PCB的长期可靠性。 阅读详情

相关推荐

[MR]RCM约束下的手术机器人

RCM(Remote Center of Motion)约束,通俗讲就是做微创手术时,机械臂插进身体,机械臂受身体的插入点的约束,不能乱动。 相关参考论文 Task Control with Remote Center of Motion Constraint for Minimally Invasive Robotic Surgery ...

土豆大叔的博客 4579

a21.ansible 生产实战案例 -- keepalived roles

1.keepalived-master roles [root@ansible-server ansible]# mkdir -p roles/keepalived-master/{tasks,files,vars,templates} [root@ansible-server ansible]# cd roles/keepalived_master/ [root@ansible-server keepalived-master]# ls files tasks templates vars [ro

Raymond的博客 330

Windows 10下Carla 0.9.15安装避坑指南:从下载到运行的全流程解析

本文详细解析了在Windows 10系统上安装和运行Carla 0.9.15自动驾驶仿真平台的全流程。内容涵盖从系统环境准备、资源下载、Python依赖安装,到首次启动验证及常见错误(如DLL缺失、显卡驱动问题)的深度解决方案,旨在帮助用户快速搭建稳定的开发环境,并运行第一个自动驾驶Python脚本。

alice7model的博客 546

ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用

1.ansible roles简介 Ansible roles是为了层次化、结构化地组织Playbook roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们 roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高 以特定的层级目录结构进行组织的tasks、variables、handlers、templates、file...

Rapig1的博客 427

半导体测试(一)

探针台是一种用于在晶圆上进行配合探针卡进行电路量测的设备,在测试过程中,探针工作站会将探针与晶圆上的每个die进行接触,以进行电性测量。在这个过程中,每个die都被测试以确保它能基本满足器件的特征或设计规格书(Specification),通常包括电压、电流、时序和功能的验证。晶圆是一个圆形的硅片,在这个半导体的基础之上,建立了许多独立的单个的电路;在所有的die都被探测(Probed)之后,晶圆被切割成独立的dice,这就是常说的die saw,所有被标示为失效的die都被报废,。

m0_37606066的博客 8431

01 Python学习总结:Python简介及入门

Python 是一门高级编程语言,以其简洁、易读和强大的功能而广受欢迎。它适用于多种应用场景,包括 Web 开发、数据分析、人工智能、自动化脚本等。以下是 Python 的简介及入门知识总结,帮助你快速了解并开始学习 Python。

数据知道的博客 1万+

Linux之Ansible部署keepalive+http+haproxy高可用集群及ansible自动化创建用户和磁盘分区

一、Ansible roles 1. Ansible roles的介绍 Ansible roles是为了层次化、结构化地组织Playbook。roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高。以特定的层级目录结构进行组织的tasks、variables、ha...

qq_43830639的博客 652

基于YOLOv8与UI界面的校园垃圾分类督导系统

YOLO(You Only Look Once)是目前最为广泛使用的目标检测算法之一。它通过一次前向传递即完成目标检测,具有极高的速度与效率。YOLOv8是YOLO系列的最新版本,相比于之前的YOLO版本,YOLOv8在速度、精度、检测能力等方面都有了显著的提升。本项目通过结合YOLOv8模型与UI界面,成功实现了校园垃圾分类督导系统。该系统能够自动识别不同类型的垃圾,并通过UI界面实时展示垃圾分类的结果。

YOLO 337

Ansible下使用haproxy完成负载均衡

1.Ansible 下使用haproxy完成负载均衡: 1-1:下载 haproxy: dnf install haproxy -y (AppStream中自带的); 1-2: 编写playbook,在清单主机中安装并开启apache: 1-3在服务端配置haproxy文件: vim /etc/haproxy/haproxy.cfg 在64,65 编写后台状态及认证用户;更改71 行的端口为80端口,注意apache默认端口也为80,因此,在更改完成后开启haproxy时要关闭apache: 设定负

lb1331的博客 382

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5078

Halcon算子知识:optical_flow_mg

光流(Optical Flow)是一种研究图像对齐的算法,一般包括两大类:稀疏光流和稠密光流。稀疏光流就是研究图像中稀疏点的光流,这些点一般是角点;稠密光流则是研究图像中所有点的偏移量。以下介绍halcon的基本光流算子optical_flow_mg的原理方法。该算子计算两个图片的光流法。 二、算子说明 optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, Integration

gongdiwudu的专栏 1万+

自动化运维之Ansible

Ansible 是一款开源、自动化运维工具,由 RedHat 收购维护;使用 Python 开发,实现批量远程主机配置管理、程序部署、任务调度。核心特点:无 Agent(客户端),不需要在被管理机器安装代理程序。

2303_80199544的博客 257

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 616

Ansible (3) 角色编写和使用

文章目录role 角色 介绍创建roles使用roles部署httpd负载均衡 role 角色 介绍 角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性,结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。角色一般用于基于主机构建服务

weixin_43414025的博客 847

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

keepalived+haproxy实现mysql负载均衡高可用

环境准备 操作系统CentOS 6.9 Haproxy+keepalived(h1) 192.168.20.135 Haproxy+keepalived(h2) 192.168.20.136 Mysql主 192.168.20.139 Mysql...

小树苗 2278

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Ansible部署小型企业服务框架+wordpress

一、前言ansible作为一款灵活、高效、功能丰富的自动化部署工具在企业运维管理中备受推崇。经过测试,我来使用ansible部署小型企业服务框架,实现高可用、负载均衡的目标。如有错误敬请赐教。目标环境拓扑: 环境介绍:前端代理层由两台nginx实现,并安装keepalived实现地址滑动达成高可用。 web层由两套Apache+PHP+WordPress 构建应用环境。数据层由一台mariadb组...

518

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ansible 管理索引

ansible 管理索引标签

Terry Tsang 644

Ansible与haproxy实现负载均衡+高可用

server1 [root@server1 ~]# vim /etc/sudoers 92 devops ALL=(ALL) NOPASSWD: ALL [devops@server1 ansible]$ yum list haproxy [devops@server1 ansible]$ sudo yum install -y haproxy [devops@server1 ...

even160941的博客 907

openStack云平台虚拟桌面galera mysql 3节点集群实例实战

openStack云平台虚拟桌面galera mysql 3节点集群实例实战 posted on 2015-11-13 15:30 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 var allowComments=true,cb_blo...

weixin_33921089的博客 202

安装及部署Mysql

安装Mysqlyum -y remove mysql mysql-server #卸载mysql的rpm包yum -y install ncurses-*下载mysql和cmakeget cmake-2.8.6.tar.gz mysql-5.5.22.tar.gz解压cmake,安装基本环境tar zxvf /root/cmake-2.8.6.tar.gz -C /u...

weixin_34255055的博客 106

MySQL/MariaDB数据库主从复制

MySQL数据库复制概述MySQL的主从复制是指从服务器向主服务器获取二进制日志文件,然后在从服务器上对这些日志重新执行,从而使从服务器和主服务器保持同步。但由于是异步的复制,从服务器在一定程度上落后于主服务器,刚写入到主服务器上的数据可能服务在从服务器上查询得到。MySQL的复制原理:(1)从服务器创建I/O线程连接主数据库,向主数据库请求二进制日志文件。(2)主库上启动B...

weixin_34040079的博客 156

构建 MariaDB Galera Cluster 分布式数据库集群(二)

MariaDB的安装 构建 MariaDB Galera Cluster之前,首先安装MariaDB,本文使用的版本是10.1 1.环境准备 主机: MariaDB01(192.168.56.102) MariaDB02(192.168.56.103) MariaDB03(192.168.56.104) OS: centos6.5MariaDB版本:10.1 yum源设置H...

weixin_30608131的博客 246

实战:ansible自动化部署nginx+keepalived+mysql负载均衡集群

一、目的 使用ansible自动化部署nginx+keepalived+mysql负载均衡集群。二、拓扑规划三、详细步骤 1、环境的搭建 (1)、安装ansible,同时配置私钥免密码进行通信 [root@localhost~]#ssh-keygen-trsa#-t表示使用的加密类型,其中rsa1表示version1版本,rsa、dsa、ecdsa的加密对于的是v...

weixin_33724659的博客 473

【接前面环境】Centos7.4,使用Haproxy+Keepalived,实现Mysql中间件Mycat的高可用以及负载均衡

前面我们完成了整个LAMP架构的80%了。我们现在还缺个前端。在这里打算用2太服务器,部署Haproxy实现中间件的负载均衡。部署Keepalived,实现中间件的高可用。这样的架构,就可以说完成95%了。 一、新增两台服务器,IP分别为31,32.我们先处理第一台。主机名为ha1.IP为31 1、安装Haproxy 2、配置Haproxy。 vim /etc/haproxy/haprox...

walk on the road of linux 722

马哥教育N36第十六周作业

搭建DHCP服务器,以及使用Ansible

me0607040211的博客 232

ansible+keepalived+lvs集群配置

五台服务器,一台上配置ansible,另外四台全部装好nginx,两台装keepalived 实现效果 手工到某一台上面装nginx 查看yum仓库 查看是否安装成功 配置两台keepalived的页面,当两台nginx宕掉就转到keepalived的配置页面上提示出错 ubuntu中nginx的配置文件都在/usr/local/nginx 下面,配置页面方法和之前类似 启动刚安装的两台nginx 测试一下访问的问题 给两台后端nginx配置测试页面 启动两台后端nginx 访问测试

WuWuWu_you的博客 548
上一篇: 自动化运维部署工具ansible环境部署
下一篇: 自动化运维工具ansible之变量和循化
SS_CC_Go
博客等级 码龄9年 16粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值