1.安装docker

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

sudo yum-config-manager \
—add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

#启动docker
systemctl start docker
#查看docker服务状态
systemctl status docker

2.配置docker

1)配阿里云镜像(https://3sodccmh.mirror.aliyuncs.com为自己的阿里云镜像地址)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://3sodccmh.mirror.aliyuncs.com“]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#开机自启
systemctlenable docker

2)解决ip冲突

sudo vi /etc/docker/daemon.json
#加入以下配置(ip段根据实际情况来定)
{
“registry-mirrors”: [
https://3sodccmh.mirror.aliyuncs.com“,
https://hub-mirror.c.163.com“,
https://registry.aliyuncs.com“,
https://registry.docker-cn.com“,
https://docker.mirrors.ustc.edu.cn
],
“debug” : true,
“default-address-pools” : [
{
“base” : “172.31.0.0/16”,
“size” : 24
}
]
}

sudo systemctl daemon-reload
sudo systemctl restart docker

3)以非 root用户管理 Docker

见官网:https://docs.docker.com/engine/install/linux-postinstall/

3.安装docker-compose

curl -L “https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
如果慢,可以换一个源:
curl -L “https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

4.MAVEN安装

1.下载压缩包:
官网地址: http://maven.apache.org/download.cgi
2.解压文件
tar -zxvf apache-maven-3.6.3-bin.tar.gz
3.配置环境变量
4.刷新环境变量
source /etc/profile
5.检查版本
6.将mvn命令软链接到/usr/bin下(jenkins取的环境)
ln -s /usr/local/maven3/bin/mvn /usr/bin/mvn
vi /etc/profile

export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=${MAVEN_HOME}/bin:$PATH

5.安装mysql,redis



mkdir -p /usr/local/src/pm/mysql

mkdir -p /usr/local/src/pm/redis

cd /usr/local/src/pm/redis/conf
vim redis.conf

requirepass Power4005


cd /usr/local/src/pm

vim docker-compose.yml
#docker-compose 文件

version: ‘3’
volumes:
portainer_data:
services:
mysql:
image: mysql:5.7
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: Power4005
TZ: Asia/Shanghai # 指定时区
ports:
- 9001:3306
volumes:
- /usr/local/src/pm/mysql/data:/var/lib/mysql #挂载 MySQL数据
- /usr/local/src/pm/mysql/log:/var/log/mysql
#- /usr/local/src/pm/mysql/conf/my.cnf:/etc/mysql/my.cnf
redis:
image: redis:4.0.14
container_name: redis
restart: always
command: redis-server /usr/local/etc/redis/redis.conf —appendonly yes
volumes:
- /usr/local/src/pm/redis/data:/data #挂载 Redis数据
- /usr/local/src/pm/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:rw #挂载 Redis配置
ports:
- 9002:6379
portainer:
image: portainer/portainer
ports:
- “9000:9000”
command: -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
#部署docker-compose服务
docker-compose up -d

6.GIT安装



yum install git

git —version

cat .ssh/id_rsa.pub

7.配置阿里云仓库

image.png
创建容器实例,这里使用个人版
image.png
配置仓库密码
image.png
创建命名空间
image.png
创建仓库
image.png
image.png
image.png
image.png
image.png

8.安装jenkins

1)安装



sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

sudo rpm —import https://pkg.jenkins.io/redhat/jenkins.io.key

yum install jenkins

vi /etc/init.d/jenkins

[candidates]添加
/usr/local/java/jdk1.8.0_271/bin/java

#给jenkins自动创建的jenkins用户添加可以sudo的权限
chmod u+w /etc/sudoers
sudo vi /etc/sudoers
jenkins ALL=(ALL) NOPASSWD: ALL
Defaults:jenkins !requiretty

#修改jenkins 端口,用户
vi /etc/sysconfig/jenkins
JENKINS_PORT=”9006”
JENKINS_USER=”root”

#启动jenkins
service start jenkins

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
ln -s /usr/local/jdk1.8.0_291/bin/java /usr/bin/java
ln -s /usr/local/maven3/bin/mvn /usr/bin/mvn
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2)生成密钥

ssh-keygen -t rsa -C “【邮箱】”
image.png
image.png
image.png
image.png

3) 创建任务

注意:拉取代码可能需要在本机上先拉取代码一下

image.png
image.png
image.png
image.png
image.png

9.安装Metrics监控

9.1 安装prometheus

9.1.1 下载镜像

docker pull prom/prometheus

9.1.2 启动镜像

docker run -d —name prometheus -p 9090:9090 prom/prometheus

9.1.3 创建文件夹

mkdir -p /usr/local/src/pm/prometheus
cd /usr/local/src/pm/prometheus
mkdir conf
mkdir data
chmod 777 -R data

9.1.4 拷贝配置文件

docker cp prometheus:/etc/prometheus/prometheus.yml conf/

9.2 安装grafana+node-exporter+cadvisor

  1. prometheus:
  2. image: prom/prometheus
  3. container_name: prometheus
  4. restart: always
  5. ports:
  6. - 9006:9090
  7. volumes:
  8. - /usr/local/src/pm/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
  9. grafana:
  10. image: grafana/grafana
  11. container_name: grafana
  12. restart: always
  13. ports:
  14. - 9007:3000
  15. node-exporter:
  16. image: quay.io/prometheus/node-exporter
  17. container_name: node-exporter
  18. restart: always
  19. ports:
  20. - 9008:9100
  21. cadvisor:
  22. image: google/cadvisor:latest
  23. container_name: cadvisor
  24. restart: always
  25. volumes:
  26. - /:/rootfs:ro
  27. - /var/run:/var/run:rw
  28. - /sys:/sys:ro
  29. - /var/lib/docker/:/var/lib/docker:ro
  30. ports:
  31. - 9009:8080

9.3 修改prometheus.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9012']

  - job_name: 'cadvisor'
    static_configs:
    - targets: ['localhost:9015']

  - job_name: 'node'
    scrape_interval: 8s
    static_configs:
      - targets: ['localhost:9014']

10.NODE、NPM安装

wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz

mkdir -p /usr/local/node

tar xf node-v12.16.1-linux-x64.tar.xz -C /usr/local/node

ln -s /usr/local/node/node-v12.16.1-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node/node-v12.16.1-linux-x64/bin/npm /usr/local/bin/npm

ln -s /usr/local/node/node-v12.16.1-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node/node-v12.16.1-linux-x64/bin/npm /usr/bin/npm

11.nginx安装



docker pull nginx

mkdir -p /usr/local/src/pm/nginx/conf/
mkdir -p /usr/local/src/pm/nginx/data/
mkdir -p /usr/local/src/pm/nginx/logs/
mkdir -p /usr/local/src/pm/nginx/ssl/

#将nginx-test容器配置文件copy到本地(也可以直接从其他环境下在)

docker run —name nginx-test -p 80:80 -d nginx

docker cp nginx-test:/etc/nginx/nginx.conf /usr/local/src/pm/nginx/conf

#停止容器
docker stop nginx-test
#删除容器
docker rm nginx-test

docker run \
-p 80:80 \
-v /usr/local/src/docker-compose-ht/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:rw \
-v /usr/local/src/docker-compose-ht/nginx/ssl:/etc/ssl/cert:rw \
-v /usr/local/src/docker-compose-ht/nginx/logs:/etc/nginx/logs \
-v /usr/local/src/docker-compose-ht/nginx/data:/etc/nginx/html:rw \
—name nginx -d nginx


#web-api前端文件夹
mkdir -p /usr/local/src/pm/nginx/data/pm-cloud

#9028前端文件夹
mkdir -p /usr/local/src/pm/nginx/data/ht-front

#出现的问题:docker-compose启动
ImportError: cannot import name UnrewindableBodyError

curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
pip install —upgrade utils requests
pip install docker-compose

#启动容器
docker-compose up -d
|

#docker-compose配置
version: "3.3"
services:
  nginx:
    container_name: nginx
    restart: always
    image: nginx
    ports:
      - 80:80
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf    #映射nginx的配置文件到容器里
      - ./nginx/logs/:/var/log/nginx/
      - ./nginx/data/:/var/www/html/                     #映射nginx的网页目录到容器里
      - ./nginx/ssl/:/etc/ssl/cert

12.ELK安装

12.1 修改mmap计数大于等于262144的限制

#在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
#并执行命令
sysctl -p

12.2下载并运行镜像

docker run -p 5601:5601-p 9200:9200-p 9300:9300-p 5044:5044—name elk -d sebp/elk:7.13.2

12.3准备elasticsearch的配置文件

cd /usr/local/src/pm/
mkdir -p elk/elasticsearch/conf
docker cp elk:/etc/elasticsearch/elasticsearch.yml elk/elasticsearch/conf/

12.4修改elasticsearch.yml配置

cd elk/elasticsearch/conf/
vim elasticsearch.yml

cluster.name: my-es



http.cors.enabled: true
http.cors.allow-origin: “*”

12.5准备logstash的配置文件

cd /usr/local/src/pm/
mkdir -p elk/logstash/conf
docker cp elk:/etc/logstash/conf.d/. elk/logstash/conf/

12.6删除02-beats-input.conf的最后三句,去掉强制认证

vim elk/logstash/conf/02-beats-input.conf
#ssl => true
#ssl_certificate => “/pki/tls/certs/logstash.crt”
#ssl_key => “/pki/tls/private/logstash.key”

12.7 docker-compose

docker stop elk
docker rm elk
elk:
image: sebp/elk:7.13.2
container_name: elk
restart: always
environment:
LS_HEAP_SIZE: 1g
ES_JAVA_OPTS: -Xms2g -Xmx2g
ports:
- 9021:5601
- 9022:9200
- 9023:9300
- 9024:5044
volumes:
- /usr/local/src/pm/elk/elasticsearch/data:/var/lib/elasticsearch
- /usr/local/src/pm/elk/elasticsearch/plugins:/opt/elasticsearch/plugins
- /usr/local/src/pm/elk/elasticsearch/conf/elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml
- /usr/local/src/pm/elk/logstash/conf:/etc/logstash/conf.d
- /usr/local/src/pm/elk/logstash/patterns:/opt/logstash/patterns

12.8 配置密码

cd /usr/local/src/pm/
vim elk/elasticsearch/conf/elasticsearch.yml

xpack.security.enabled:true
xpack.security.transport.ssl.enabled:true

docker restart elk
docker exec -it elk bash
#进入安装目录,为内置账号生成密码(自建)
/opt/elasticsearch/bin/elasticsearch-setup-passwords interactive
cd /usr/local/src/pm/
mkdir -p elk/kibana/config
docker cp elk:/opt/kibana/config/ elk/kibana

vim elk/ kibana/config/kibana.yml
i18n.locale: “zh-CN”
kibana.index: “.kibana”
#这个不用动默认就是elastic
elasticsearch.username: “elastic”
elasticsearch.password: “Power4005”
去掉 12.6注释

cd /usr/local/src/pm/
docker cp elk:/opt/logstash/config elk/logstash/
vim elk/logstash/config/logstash.yml

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: Power4005
elk:
image: sebp/elk:7.13.2
container_name: elk
restart: always
environment:
LS_HEAP_SIZE: 1g
ES_JAVA_OPTS: -Xms2g -Xmx2g
ports:
- 9021:5601
- 9022:9200
- 9023:9300
- 9024:5044
volumes:
- /usr/local/src/pm/elk/elasticsearch/data:/var/lib/elasticsearch
- /usr/local/src/pm/elk/elasticsearch/plugins:/opt/elasticsearch/plugins
- /usr/local/src/pm/elk/elasticsearch/conf/elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml
- /usr/local/src/pm/elk/logstash/conf:/etc/logstash/conf.d
- /usr/local/src/pm/elk/logstash/patterns:/opt/logstash/patterns
- /usr/local/src/pm/elk/logstash/config:/opt/logstash/config
- /usr/local/src/pm/elk/kibana/config:/opt/kibana/config

13. JIRA安装

文章:https://www.cnblogs.com/tchua/p/10862670.html
#创建数据库

CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
GRANT ALL on jiradb.* TO ‘jira’@’%’ IDENTIFIED BY ‘Jira#123’;
flush privileges;
#docker-compose

jira:
image: cptactionhank/atlassian-jira-software:8.1.0
container_name: jira
volumes:
- /etc/localtime:/etc/localtime:ro
ports:
- 9029:8080

附:

1) 切换yam源

1. 查看yum源信息:
yum repolist
2. 安装base reop源
cd /etc/yum.repos.d
3. 接着备份旧的配置文件
sudo mv CentOS-Base.repo CentOS-Base.repo.bak
4. 下载阿里源的文件
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-7.repo
—————————————-红帽版本一样的安装———————————————
# 安装epel repo源:
epel(RHEL 7) 红帽7
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
epel(RHEL 6) 红帽6
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
epel(RHEL 5) 红帽5
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo
———————————————————————————————————————
5.清理缓存
yum clean all
6.重新生成缓存
yum makecache
7. 再次查看yum源信息
yum repolist

2)Docker集群

| https://www.jianshu.com/p/07302a87b014

一、在主服务器上创建集群管理服务器。

1.1、初始化swarm

docker swarm init
初始化之后会给出一个加入节点的命令,并且给出了一个生成管理节点的命令
[root@localhost ~]# docker swarm init
Swarm initialized: current node (i2tre1zf2hs4kbg7gn4znon8l) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join —token SWMTKN-1-5pho506z7ybc3mnkathb91pummb0h6kbayeph7sxn4cu7a3zqa-7oklzqztj3u6kdgx5ewv0q369 172.30.221.18:2377

To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.

1.2、生成口令

1、生成管理节点口令

docker swarm join-token manager
生成一个管理节点的口令
[root@localhost ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

docker swarm join —token SWMTKN-1-5pho506z7ybc3mnkathb91pummb0h6kbayeph7sxn4cu7a3zqa-cqr13zijt76sus4ewsj5vdbtt 172.30.221.18:2377

2、生成执行节点口令

docker swarm join-token worker
[root@localhost ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:

docker swarm join —token SWMTKN-1-5pho506z7ybc3mnkathb91pummb0h6kbayeph7sxn4cu7a3zqa-7oklzqztj3u6kdgx5ewv0q369 172.30.221.18:2377
3、在子服务器执行添加加入节点命令后再管理节点查询
docker node ls
这个时候查看已经生成两个借点,第一个节点是本地的节点,第二个是加入的节点。
[root@localhost ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
dd3twc15iaml2dorpj4owin7o localhost.localdomain Ready Active Reachable 18.09.0
i2tre1zf2hs4kbg7gn4znon8l * localhost.localdomain Ready Active Leader 18.09.0
已经显示出来标识另外一台的Docker已经加入到这个节点了,Docker集群已经创建完成 | | —- |

3)docker切换存放路径

| https://blog.csdn.net/qq_28808029/article/details/97132591

systemctl stop docker

cp -r /var/lib/docker /home/.docker-data

rm -rf /var/lib/docker

ln -s /home/.docker-data /var/lib/docker

systemctl start docker | | —- |

4)docker 容器管理

访问http://pmcloud.njphzh.com:9000/

5)oracle 关闭

su – oracle

sqlplus / as sysdba

shutdown;