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

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值