当前位置: 首页 > news >正文

roles以及想项目搭建

回顾:

playbook

1、调用剧本

ansible-playbook /etc/ansible/playbook/book001.yml

2、编写剧本


-       hosts:  s1
        remote_user:    root
        tasks:
        -       name:   卸载httpd
                yum:    name=httpd      state=absent
        -       name:   安装nginx
                yum:    name=nginx      state=present
        -       name:   修改资源文件
                shell:  echo 'i am nginx,port is 80' > /usr/share/nginx/html/index.html
        -       name:   修改端口
                command:        sed -i '/listen/s/80/8080/g' /etc/nginx/nginx.conf
                notify:
                -       restart nginx
        -       name:   启动服务
                service:        name=nginx   state=started  enabled=yes
        handlers:
                -       name:   restart nginx
                        service:        name=nginx   state=restarted


3、基本的语法
-    hosys:
     remote:
     tasks:
     -    name:    说明
        调用模块
        notify:
        -    handlername
     -    handlers:    
            -name:    handlername
            模块语句
 
一·、roles
1、roles介绍
roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独 的⽬录中,并可以便捷地调⽤它们的⼀种机制。

假设我们要写⼀个playbook来安装管理lamp环境,那么这个 playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能 拆分, 分成apache管理,php管理,mysql管理,然后在需要使⽤的时候 直接调⽤就可以了,以免重复写。就类似编程⾥的模块化的概念,以 达到代码复⽤的效果。

2、创建roles的⽬录结构


files:⽤来存放由copy模块或script模块调⽤的⽂件。

tasks:⾄少有⼀个main.yml⽂件,定义各tasks。

handlers:有⼀个main.yml⽂件,定义各handlers。

templates:⽤来存放jinjia2模板。

vars:有⼀个main.yml⽂件,定义变量。

meta:有⼀个main.yml⽂件,定义此⻆⾊的特殊设定及其依赖关系。

[root@M0 nginx]# vim /etc/ansible/playbook/roles.yml

---
-       hosts:          s1
        remote_user:    root
        roles:
                -       nginx
...
[root@M0 nginx]# ansible-playbook /etc/ansible/playbook/roles.yml

练习:使用role来实现lnmp
nginx改配置 8080

mariadb中创建eleme数据库

创建表 t_user

id                      int        主键约束,自增       编号

username        varchar        非空约束        账号

password         varchar        非空约束        密码

remark             varchar        没有约束        账号权限说明

 [root@M0 ~]# vim /etc/ansible/roles/mariadb/tasks/main.yml

---
-       name:   卸载mariadb
        yum:    name=mariadb,mariadb-server,mariadb-devel       state=absent
-       name:   安装mariadb
        yum:    name=mariadb,mariadb-server,mariadb-devel    state=present
-       name:           启动mariadb服务
        service:        name=mariadb   state=started  enable=yes
-       name:   执行脚本,创建数据库和数据表
        scirpt: /etc/ansible/scirpt/dbtable.sh
[root@M0 ~]# cd /etc/ansible/
[root@M0 ansible]# mkdir script
[root@M0 ansible]# vim /etc/ansible/script/dbtable.sh

#!/bin/bash
mysql << EOF
 
create database if not exists eleme charset utf8mb4;
 
use eleme;
 
create table user(
id int primary key auto_increment,
username varchar(45) not null,
password varchar(45) not null,
remark varchar(45)
);
 
quit
EOF

配置一主两从的mysql服务器:

要求:

(1)将步骤罗列出来,并且截图

(2)服务端口3306,不要关闭防火墙

(3)在mysql中添加eleme数据库设置为utf8mb4

(4)添加表t_user

(5)添加两行记录

(6)使用mycat为三台数据库设置负载均衡(读写分离)

(7)配置静态资源服务器,为前端提供图片和视频

(8)部署两台java17.0.3环境的后端服务器,端口8080,不关防火墙

(9)部署nginx代理java服务器,负载均衡策略为轮询,端口为80


http://www.mrgr.cn/news/2771.html

相关文章:

  • 数据结构----队列
  • Grafana指标汉化攻略:轻松实现中文可视化
  • 取证工具 ElcomSoft iOS Forensics Toolkit: 在 Windows 中加载 HFS 镜像
  • 第1章-02-Python环境安装与测试
  • 数字虚拟人原理
  • 44 个 React 前端面试问题
  • 自然语言处理实战项目30-基于RoBERTa模型的高精度的评论文本分类实战,详细代码复现可直接运行
  • 合并两个有序链表--力扣
  • 强化安全基线:反射API与最小权限原则
  • 使用docker compose一键部署 Portainer
  • 从密码学角度看网络安全:加密技术的最新进展
  • NGINX
  • 《Techporters架构搭建》-Day06 Springboot国际化
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
  • 《深入浅出WPF》读书笔记.4名称空间详解
  • 【闪送-注册安全分析报告】
  • Why Does ChatGPT Fall Short in Providing Truthful Answers?
  • ATECLOUD测试平台自动收集存储示波器、万用表、网络分析仪等仪器的数据
  • 机器学习--特征工程常用API
  • linux驱动使用gdb调试