美文网首页Python
一个脚本完成 Mysql+Nginx+Redis+Mongo的安

一个脚本完成 Mysql+Nginx+Redis+Mongo的安

作者: Felix_ | 来源:发表于2020-08-14 16:22 被阅读0次

阶段的总结总是能让你踏上新的台阶

由于经常部署各种服务,每次到了新的环境中,就需要重新安装JavaMysqlNginxRedisMongoTomcat等等各种运行环境和数据库,不仅效率低下,反复做这些更是让人头痛,所以,编写了简单的脚本,用来完成这些环境的搭建.

首先我们来做一些准备工作,拷贝下面的内容到文本编辑器内,另存为nginx.conf

注意后缀为conf,不要使用 txt 等

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

接下来拷贝下面的内容,另存为docker-compose.yml,如果你想修改数据库的密码,那么替换下面的123456为你自己的密码即可

version: '3'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456 #设置root帐号密码
    ports:
      - 3306:3306
    volumes:
      - /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载
      - /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载
      - /mydata/mysql/log:/var/log/mysql #日志文件挂载
  redis:
    image: redis:3.2
    container_name: redis
    command: redis-server --requirepass 123456 --appendonly yes
    volumes:
      - /mydata/redis/data:/data #数据文件挂载
    ports:
      - 6379:6379
  nginx:
    image: nginx:1.10
    container_name: nginx
    volumes:
      - /mydata/nginx/nginx.conf:/etc/nginx/nginx.conf #配置文件挂载
      - /mydata/nginx/html:/usr/share/nginx/html #静态资源根目录挂载
      - /mydata/nginx/log:/var/log/nginx #日志文件挂载
    ports:
      - 80:80
  mongo:
    image: mongo:3.2
    container_name: mongo
    volumes:
      - /mydata/mongo/db:/data/db #数据文件挂载
    ports:
      - 27017:27017
    environment:
      - AUTH=yes
      - ADMIN_USER=root
      - ADMIN_PASS=123456
      - APPLICATION_DATABASE=mall
      - APPLICATION_USER=root
      - APPLICATION_PASS=123456

最后拷贝接下来的内容,另存为autodeploy.sh

#!/bin/bash

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #安装 docker
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose #赋予dockercopose 可执行权限
systemctl enable docker #允许自动启动
systemctl start docker #启动 docker
#配置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://o3pvjnzz.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

#====nginx setting======
mkdir -p /mydata/nginx/
cp nginx.conf /mydata/nginx/
#====nginx setting end======

#启动项目
docker-compose up -d

准备工作做好了,现在,我们把docker-compose.ymlnginx.confautodeploy这三个文件放入同一个文件夹,比如Mac上,我放在桌面上的deploy文件夹中,打开终端工具,进入 deploy 目录

cd ~/Desktop/deploy 

给脚本可执行的权限(这里的autodeploy是脚本的名称)

chmod +x autodeploy.sh

现在,执行下面的命令

./autodeploy.sh

接下来,就是是等待的时间了,脚本执行完毕之后,MysqlNginxRedisMongo就已经安装并且运行起来了.

这个脚本已经写入了我自己的阿里云镜像加速地址,所以在国内的服务器中安装速度会很快

如果我们想要移除这些服务,输入如下命令即可

cd ~/Desktop/deploy
docker-compose down

或者如果你想重启某个服务,只需要输入下面对应的某个服务的重启命令即可

docker restart mysql
docker restart redis
docker restart mongo
docker restart nginx

以上内容转载请注明出处,同时也请大家不吝你的关注和下面的赞赏
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

相关文章

  • 一个脚本完成 Mysql+Nginx+Redis+Mongo的安

    阶段的总结总是能让你踏上新的台阶 由于经常部署各种服务,每次到了新的环境中,就需要重新安装Java、Mysql、N...

  • script标签

    defer: 延时脚步 下载完成 脚本会在 后 按照延时脚本的先后顺序执行。 async: 异步脚本 下载完成...

  • 长链接

    每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行...

  • 总结异步编程的六种方式

    众所周知 JavaScript 是单线程工作,也就是只有一个脚本执行完成后才能执行下一个脚本,两个脚本不能同时执行...

  • JavaScript异步编程方式

    众所周知 JavaScript 是 单线程工作,也就是只有一个脚本执行完成后才能执行下一个脚本,两个脚本不能同时执...

  • 下载工具

    如何安装用户脚本 百度网盘下载助手 (油猴脚本) 山寨云(安卓)

  • Blender脚本自动完成

    目前找到的最好的方案,在mac版3.0.1上测试成功。 基于原有开源Github项目改写:https://gith...

  • 京东订单自动评价脚本

    刚刚完成的一个京东自动订单脚本, 以后还要加入其它京东自动的脚本 项目地址: https://github.com...

  • 2018-08-22 自动生产SSCC码

    今天完成第一个Python脚本,自动生成SSCC码:EXCEL 手工算: 脚本: 小玩意,因为自学,第一个程序,得意下。

  • selenium webdriver基于Python系列之教程之

    脚本录制完成之后,在Selenium IDE的Source中,即可以看到脚本的代码了,将Python语言的脚本复制...

网友评论

    本文标题:一个脚本完成 Mysql+Nginx+Redis+Mongo的安

    本文链接:https://www.haomeiwen.com/subject/psggdktx.html