欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux各項(xiàng)目環(huán)境部署記錄(換服務(wù)器部署腳本整理)

 更新時(shí)間:2023年05月11日 09:00:25   作者:AntBlack  
每次換便宜的服務(wù)器都要導(dǎo)致環(huán)境重新部署一遍,十分麻煩,于是把每次部署的腳本整理了一下,方便在服務(wù)器上快速進(jìn)行部署,基于?CentOS

一. 前言

Github : ?? github.com/black-ant

CASE 備份 : ?? gitee.com/antblack/ca…

每次換便宜的服務(wù)器都要導(dǎo)致環(huán)境重新部署一遍,十分麻煩。

于是把每次部署的腳本整理了一下,方便在服務(wù)器上快速進(jìn)行部署。

基于 CentOS~~~

二. 環(huán)境篇

2.1 yum 安裝

通常情況下 yum 是默認(rèn)集成的,如果出現(xiàn) yum 未集成的情況,按照如下步驟進(jìn)行安裝 :

// S1 : 查詢 yum 版本(判斷是否安裝)
sudo yum version
// S2 : 安裝 epel-release軟件倉(cāng)庫(kù)
sudo yum install epel-release
// S3 : 安裝 yum
sudo yum install yum
// S4 : 更新 yum
sudo yum update
// 其他問題 : 
failovermethod=priority in /etc/yum.repos.d/CentOS-Epel.repo; 
Configuration: OptionBinding with id "failovermethod" does not exist
- 1: sudo vim /etc/yum.repos.d/CentOS-Epel.repo
- 2: 注釋掉 # failovermethod=priority
- 3: sudo yum update 更新系統(tǒng)
Failed to download metadata for repo 'appstream': 
Cannot prepare internal mirrorlist: No URLs in mirrorlist
- 由于 centOS 停止維護(hù)帶來的問題,需要修改 mirro地址
- 1: 進(jìn)入 repo 管理 cd /etc/yum.repos.d/
- 2: 修改全局地址 
    - sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    - sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
- 3:更新緩存 : yum makecache
- 4:更新 yum : yum update -y

2.2 Java 環(huán)境準(zhǔn)備

Yum 版本

// S1 : 查詢 Java 支持的版本
yum search java|grep jdk
yum search java-1.8.0-openjdk
// S2 : 安裝 JDK 
sudo yum install java-1.8.0-openjdk-devel.x86_64
// S3 : 查詢 JDK 安裝情況
java -version

2.3 Docker 安裝

// 查看是否已安裝docker列表
yum list installed | grep docker
// 安裝必要的軟件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
// 添加 docker 源 (選擇合適的源,以下選其一即可,選錯(cuò)可能會(huì) timeout)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo=http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
// 安裝docker    
sudo yum install docker-ce
// 啟動(dòng)docker
sudo systemctl start docker 
sudo systemctl enable docker
sudo systemctl restart docker
// 查看docker服務(wù)狀態(tài)
systemctl status docker  

2.4 docker compose 安裝

// 安裝 docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
// 準(zhǔn)備處理文件夾
sudo chmod +x /usr/local/bin/docker-compose

但是,眾所周知的原因,Github 訪問不是很快

// 適用 pip3 進(jìn)行安裝
pip3 install -U pip setuptools
pip3 install docker-compose
// 查看 docker compose 版本
docker-compose --version

2.5 防火墻配置

不是所有的服務(wù)器都需要配置這個(gè),騰訊云的默認(rèn)好像就是關(guān)閉的,阿里輕量好像要配置

# 查看firewalld的運(yùn)行狀態(tài)
# 默認(rèn)防火墻 是關(guān)閉的 (not running)
firewall-cmd --state
# 啟動(dòng)防火墻
# 沒有任何提示 則啟動(dòng)成功
systemctl start firewalld
# 添加規(guī)則 (--permanent 代表重啟也生效) 
# 提示 success 則成功   
firewall-cmd --permanent --zone=public --add-port=8848/tcp         
firewall-cmd --permanent --zone=public --add-port=443/tcp    
firewall-cmd --permanent --zone=public --add-port=3336/tcp   
firewall-cmd --permanent --zone=public --add-port=5601/tcp   
firewall-cmd --permanent --zone=public --add-port=8443/tcp   
// 查看防火墻規(guī)則
# 重新加載防火墻配置
# 提示 success 則成功
firewall-cmd --reload
# 至此結(jié)束
# 查看所有打開的端口
firewall-cmd --zone=public --list-ports
firewall-cmd --list-all  
# 關(guān)閉防火墻
systemctl stop firewalld

2.6 其他小組件

// 安裝 curl 
yum install curl
// git 
yum -y install git
ssh-keygen -t rsa -C "test123123@qq.com"

三. 組件安裝

3.1 安裝 RocketMQ (docker compose)

// 1. 進(jìn)入一個(gè)新路徑 (我這里適用 home)
mkdir /home/rocket
// 2. 創(chuàng)建 docker compose
mkdir rocketmq-docker 
cd rocketmq-docker 
touch docker-compose.yml
// 3. 編輯 docker-compose.yml
version: '3'
services:
  namesrv:
    image: rocketmqinc/rocketmq:latest
    container_name: rocketmq-namesrv
    command: sh mqnamesrv
    ports:
      - "9876:9876"
    volumes:
      - ./data/namesrv/logs:/root/logs
  broker:
    image: rocketmqinc/rocketmq:latest
    container_name: rocketmq-broker
    command: sh mqbroker -c /rocketmq/broker.conf
    depends_on:
      - namesrv
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10001:10001"
      - "10002:10002"
      - "8080:8080"
    environment:
      NAMESRV_ADDR: namesrv:9876
    volumes:
      - ./data/broker/logs:/root/logs
      - ./broker.conf:/rocketmq/broker.conf
// 4. 創(chuàng)建 broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
listenPort = 10911
storePathRootDir=/root/store
storePathCommitLog=/root/store/commitlog
autoCreateTopicEnable=true
brokerIP1=10.10.101.80
// 5. 運(yùn)行 docker 
docker-compose up -d
// 查詢整體運(yùn)行情況
docker ps
// 發(fā)送消息

補(bǔ)充要點(diǎn) :

// 以上用的 4.8.0 不一定能下載到,可以查詢支持的版本》 去 docker hub 鏡像查詢
https://hub.docker.com/r/rocketmqinc/rocketmq/tags
// broker.conf 中需要配置你的宿主機(jī)IP,否則 nameserver 拿到的會(huì)有問題

安裝 docker console

wget https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
unzip rocketmq-all-4.8.0-bin-release.zip
cd rocketmq-all-4.8.0-bin-release/bin
// 使用 
sh mqadmin sendMessage -n localhost:9876 -t testTopic -p "Hello, RocketMQ!"

安裝 RocketMQ Console

// 下載后配置訪問地址,別忘了 brokerIP1 里面也要配置地址
https://github.com/apache/rocketmq-dashboard.git
// 注意添加 入站規(guī)則
TCP:5601,9876,10909,10911,10001,10002 

3.2 安裝 Redis

// S1 : 安裝 Redis
yum install redis
// S2 : 允許遠(yuǎn)程訪問
vi /etc/redis.conf
bind 127.0.0.1  -> 加上 # 注釋
protected-mode yes 改為 protected-mode no 
//  S3 : 啟動(dòng)redis
service redis start
//------------------------
//  停止redis
service redis stop
//  查看redis運(yùn)行狀態(tài)
service redis status
//  查看redis進(jìn)程
ps -ef | grep redis

3.3 安裝 MySQL

圖方便短期用直接選擇 Docker ,長(zhǎng)期用慎選,鏡像沒選好很容易變?nèi)怆u。

// S1 : 拉取鏡像
docker pull mysql
// S2 : 運(yùn)行容器 (密碼適當(dāng)復(fù)雜點(diǎn))
docker run -d --name antMySQL -e MYSQL_ROOT_PASSWORD=test9786366 -p 3306:3306 mysql
// S3 : 查看運(yùn)行情況
docker ps
docker exec -it antMySQL bash
mysql -uroot -ptest9786366

3.4 安裝 ES

S1 : 準(zhǔn)備 docker-compose.yml

version: '3.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
    container_name: elasticsearch
    environment:
      - 'cluster.name=elasticsearch'
      - 'discovery.type=single-node'
      - 'ES_JAVA_OPTS=-Xms1024m -Xmx1024m'
    volumes:
      - esdata:/usr/share/elasticsearch/data
    ports:
      - '9200:9200'
      - '9300:9300'
    networks:
      - elk
  kibana:
    image: docker.elastic.co/kibana/kibana:7.12.0
    container_name: kibana
    volumes:
      - /etc/localtime:/etc/localtime
      - /home/es/kibana.yml:/usr/share/kibana/config/kibana.yml
    links:
      - elasticsearch:es
    environment:
      - ELASTICSEARCH_URL=http://81.22.11.111:9200
      - 'elasticsearch.hosts=http://es:9200'
      - I18N_LOCALE=zh-CN
    ports:
      - '5601:5601'
    networks:
      - elk
    depends_on:
      - elasticsearch
networks:
  elk:
    name: elk
    driver:
        bridge
volumes:
  esdata:
    driver: local

S2 : 準(zhǔn)備 kibana.yml

# Default Kibana configuration for docker target
server.host: '0.0.0.0'
elasticsearch.hosts: ['http://11.22.33.111:9200']
monitoring.ui.container.elasticsearch.enabled: true

S3 : 啟動(dòng)

docker-compose --compatibility up -d

// 這里我是簡(jiǎn)化版,沒用 logstash,想要還可以選擇加上更多的配置項(xiàng)
https://blog.51cto.com/u_14129797/5694302

3.5 安裝 Nacos

這里還是使用 docker 安裝,包含各種監(jiān)控插件 @參考地址

// S1 : 準(zhǔn)備安裝目錄
mkdir nacos-docker 
cd nacos-docker 
touch docker-compose.yml
// S2 : 配置 docker-compose

找了很多案例,這一個(gè)應(yīng)該是最完整的,提供了 prometheus 和 grafana. 不過里面有些東西已經(jīng)找不到了,這里補(bǔ)充下 :

@ docker-compose部署nacos單機(jī)版(簡(jiǎn)潔優(yōu)化版) 

version: '3'
services:
  nacos:
    image: nacos/nacos-server:2.0.4
    container_name: nacos
    restart: always
    environment:
      PREFER_HOST_MODE: hostname #如果支持主機(jī)名可以使用hostname,否則使用ip,默認(rèn)也是ip
      SPRING_DATASOURCE_PLATFORM: mysql #數(shù)據(jù)源平臺(tái) 僅支持mysql或不保存empty
      MODE: standalone
      MYSQL_SERVICE_HOST: 127.0.0.1
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: root
      NACOS_APPLICATION_PORT: 8848
      JVM_XMS: 512m
      JVM_MMS: 320m
    volumes:
      - ./docker/nacos/standalone-logs/:/home/nacos/logs
      - ./docker/nacos/plugins/:/home/nacos/plugins
      - ./docker/nacos/conf/application.properties:/home/nacos-docker/application.properties
    ports:
      - "8848:8848"
  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    volumes:
      - ./docker/nacos/prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
    depends_on:
      - nacos
    restart: on-failure
  grafana:
    container_name: grafana
    image: grafana/grafana:latest
    ports:
      - 3000:3000
    restart: on-failure
  • 這里還可以編排mysql進(jìn)去,已經(jīng)有數(shù)據(jù)庫(kù)了,這里就不要了
  • 不需要 prometheus 和 grafana 只取 nacos 即可
  • application.properties 我給的空的

prometheus-standalone.yaml

global:
  scrape_interval:     15s #拉取 targets 的默認(rèn)時(shí)間間隔
  #scrape_timeout: 10s #拉取一個(gè) target 的超時(shí)時(shí)間。
  evaluation_interval: 15s #執(zhí)行 rules 的時(shí)間間隔。
  #external_labels: #額外的屬性,會(huì)添加到拉取的數(shù)據(jù)并存到數(shù)據(jù)庫(kù)中。
# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    scheme: http
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs: #因?yàn)槭褂昧司W(wǎng)橋所以targets可以直接使用容器名而不用ip
      - targets: ['prometheus:9090']
  - job_name: 'nacos'
    metrics_path: '/nacos/monitor/prometheus'
    static_configs:
      - targets: ['nacos:8848']

除了 2.0.4 還有很多其他的版本 nacos/nacos-server Tags | Docker Hub , 這里我對(duì)這個(gè)版本比較熟悉

// S3 : 啟動(dòng)容器
docker-compose --compatibility up -d
// S4 : 查看結(jié)果
docker-compose ps
docker-compose stop

補(bǔ)充

docker compose 命令

docker-compose up: 啟動(dòng)應(yīng)用程序(如果不存在,則構(gòu)建并啟動(dòng)它)
docker-compose down: 停止并刪除應(yīng)用程序的容器
docker-compose ps: 顯示當(dāng)前正在運(yùn)行的應(yīng)用程序的容器狀態(tài)
docker-compose logs: 顯示應(yīng)用程序的容器日志
docker-compose build: 構(gòu)建應(yīng)用程序的鏡像
docker-compose restart: 重啟應(yīng)用程序的容器
docker-compose exec: 在容器中執(zhí)行命令
docker-compose stop: 停止應(yīng)用程序的容器
docker-compose rm: 刪除已停止的應(yīng)用程序的容器

docker 常用命令

// 查找鏡像
docker search nacos

總結(jié)

基本上常用的就在這里了,其他的以后碰到了再補(bǔ)充進(jìn)去.

其他比較復(fù)雜的就是 jenkins ,K8S 這些,安裝可能就不是走 yum了,會(huì)稍微復(fù)雜一些。有時(shí)間單章來發(fā),更多關(guān)于Linux項(xiàng)目部署的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • shell腳本中一些特殊符號(hào)

    shell腳本中一些特殊符號(hào)

    這篇文章主要介紹了shell腳本中一些特殊符號(hào),需要的朋友可以參考下
    2015-07-07
  • Shell函數(shù)和參數(shù)傳遞基本概念和用法

    Shell函數(shù)和參數(shù)傳遞基本概念和用法

    這篇文章主要介紹了Shell函數(shù)和參數(shù)傳遞基本概念和用法,今天我們將學(xué)習(xí)如何在Shell編程中定義和使用函數(shù),以及如何傳遞參數(shù)給函數(shù),需要的朋友可以參考下
    2023-07-07
  • Shell $[]對(duì)整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算實(shí)現(xiàn)

    Shell $[]對(duì)整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算實(shí)現(xiàn)

    本文主要介紹了Shell $[]對(duì)整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • shell學(xué)習(xí)之printf命令格式化輸出語(yǔ)句

    shell學(xué)習(xí)之printf命令格式化輸出語(yǔ)句

    printf命令模仿C程序庫(kù)(library)里的printf()庫(kù)程序(library routine)。它幾乎復(fù)制了該函數(shù)的所有功能。不過在Shell層級(jí)的版本上,會(huì)有些差異。下面這篇文章就給大家主要介紹了shell中printf命令格式化輸出語(yǔ)句的相關(guān)資料,需要的朋友可以參考下。
    2017-01-01
  • 關(guān)于使用shell腳本循環(huán)處理文本的問題

    關(guān)于使用shell腳本循環(huán)處理文本的問題

    今天給大家普及關(guān)于使用shell腳本循環(huán)處理文本的問題,其實(shí)操作步驟很簡(jiǎn)單,本文通過腳本實(shí)例給大家講解,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • shell批量創(chuàng)建文件并重新命名的實(shí)例代碼

    shell批量創(chuàng)建文件并重新命名的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于shell批量創(chuàng)建文件并重新命名的相關(guān)資料,文中還介紹了批量刪除文件以及文件更名的多種方法,每種方法都給出了詳細(xì)實(shí)例代碼,需要的朋友可以參考下
    2021-07-07
  • Linux SHELL if命令參數(shù)說明

    Linux SHELL if命令參數(shù)說明

    SHELL if命令參數(shù)介紹,方便學(xué)習(xí)shell命令的朋友,需要的朋友可以參考下
    2013-01-01
  • Linux中rpm命令用法詳解

    Linux中rpm命令用法詳解

    rpm命令是用于在基于RPM包管理系統(tǒng)的Linux發(fā)行版中安裝、查詢、升級(jí)和刪除軟件包的命令行工具,本文講給大家詳細(xì)的介紹一下Linux?rpm命令的使用方法,感興趣的同學(xué)跟著小編一起來看看吧
    2023-08-08
  • linux使用管道命令執(zhí)行ps獲取cpu與內(nèi)存占用率

    linux使用管道命令執(zhí)行ps獲取cpu與內(nèi)存占用率

    這篇文章主要介紹了linux使用管道命令執(zhí)行ps獲取cpu與內(nèi)存占用率的示例,需要的朋友可以參考下
    2014-02-02
  • bash腳本中-e、&和&&的使用

    bash腳本中-e、&和&&的使用

    bash腳本里面經(jīng)常會(huì)看到-e、&和&&,你知道它的用法嗎,本文主要介紹了bash腳本中-e、&和&&的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論