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.配置阿里云仓库
创建容器实例,这里使用个人版
配置仓库密码
创建命名空间
创建仓库
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 |
---|
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)生成密钥
3) 创建任务
注意:拉取代码可能需要在本机上先拉取代码一下
9.安装Metrics监控
9.1 安装prometheus
9.1.1 下载镜像
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
prometheus:
image: prom/prometheus
container_name: prometheus
restart: always
ports:
- 9006:9090
volumes:
- /usr/local/src/pm/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
container_name: grafana
restart: always
ports:
- 9007:3000
node-exporter:
image: quay.io/prometheus/node-exporter
container_name: node-exporter
restart: always
ports:
- 9008:9100
cadvisor:
image: google/cadvisor:latest
container_name: cadvisor
restart: always
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- 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; |
---|