2017-07-13 15:31:18    71    0    0

Web反向代理服务

  1. server {
  2. listen 80 default_server;
  3. server_name seanzhau.com www.seanzhau.com;
  4. root /opt/webapps/;
  5. index index.html index.htm;
  6. access_log /data/logs/nginx/seanzhau.com.log;
  7. #Web反向代理服务
  8. location / {
  9. proxy_store off;
  10. proxy_redirect off;
  11. proxy_set_header Host $host;
  12. proxy_set_header X-Real-IP $remote_addr;
  13. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  14. proxy_set_header X-Forwarded-Proto $scheme;
  15. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  16. proxy_pass http://localhost:8080/;
  17. }
  18. }

WebSockets反向代理服务

  1. server {
  2. listen 80 default_server;
  3. server_name seanzhau.com www.seanzhau.com;
  4. root /opt/webapps/;
  5. index index.html index.htm;
  6. access_log /data/logs/nginx/seanzhau.com.log;
  7. #WebSockets反向代理服务
  8. location / {
  9. proxy_store off;
  10. proxy_redirect off;
  11. prox
2018-04-16 16:58:52    26    0    0

服务器信息

  1. [root@seanzhau.com ~]# vim /etc/hosts
  2. 192.168.100.101 node1 mon osd adm
  3. 192.168.100.102 node2 mon osd
  4. 192.168.100.103 node3 mon osd
  5. 192.168.100.104 node4 mon osd
  6. 192.168.100.105 node5 mon osd

添加用户

  1. [root@seanzhau.com ~]# groupadd ceph -g 167 && useradd ceph -m -d /var/lib/ceph -s /sbin/nologin -u 167 -g 167
  2. [root@seanzhau.com ~]# echo "ceph ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/ceph && chmod 0440 /etc/sudoers.d/ceph

安装基础包

  1. [root@seanzhau.com ~]# yum install https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/ceph-deploy-1.5.39-0.noarch.rpm -y
  2. [root@seanzhau.com ~]# yum install ntp ntpdate ntp-doc yum install yum-plugin-priorities -y

清理 Ceph 安装包

  1. [root@seanzhau.com ~]# ceph-deploy purge node1 node2 node3 node4 node5

清理配置

  1. [root@seanzhau.com ~]# ceph-deploy purgedata node1 node2 node3 node4 node5
  2. [root@seanzhau.com ~]# ceph-deploy forgetkeys

创建执行目录

  1. [root@seanzhau.com ~]# mkdir ceph && cd ceph

创建集群

  1. [root@seanzhau
2018-05-17 11:23:58    16    0    0

安装anaconda

  1. ##安装到/opt/anaconda3目录
  2. [root@seanzhau.com ~]# ./Anaconda3-5.1.0-Linux-x86_64.sh

安装jupyterhub和notebook

  1. ##会自动安装nodejs和npm
  2. [root@seanzhau.com ~]# conda install -c conda-forge jupyterhub
  3. [root@seanzhau.com ~]# conda install notebook

验证安装

  1. [root@seanzhau.com ~]# jupyterhub -h
  2. [root@seanzhau.com ~]# configurable-http-proxy -h

创建https私有证书

  1. [root@seanzhau.com ~]# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/jupyter/jupyter.key -out /etc/jupyter/jupyter.pem

创建操作系统用户

  1. ##jupyterhub管理员账号,同时用户文档文件都存在对应用户目录下,如:/home/seanzhau
  2. [root@seanzhau.com ~]# useradd seanzhau
  3. [root@seanzhau.com ~]# passwd seanzhau

创建jupyterhub配置文件

  1. [root@seanzhau.com ~]# jupyterhub --generate-config -f /etc/jupyter/jupyterhub_config.py

修改jupyterhub配置

  1. [root@seanzhau.com ~]# vim /etc/jupyter/jupyterhub_config.py
  2. c.JupyterHub.cookie_secret_file = '/root/.jupyter/jupyterhub_cookie_secret'
  3. c.JupyterHub.db_url = 'sqlite:////root/.jupyter/jupyt
2017-08-01 14:35:19    134    0    0

PaaS分类

Gartner把它分为两类:
aPaaS:application platform as a service,应用部署和运行平台;
iPaaS:integration platform as a service,集成服务平台。

title

什么是iPaaS

iPaaS是一个集开发、CICD、测试、部署和服务治理于一体的云开发集成平台,它提供了一种敏捷的业务开发 、生产方式,实现了云平台上从源码到应用的系统集成工作流。

此处我们的iPaaS平台基于Fabric8搭建,底层采用了docker和kubernetes容器方案。Fabric8主要实现了开发过程中s2i的工作流、CICD、容器化蓝绿发布、状态自动监控和应用的版本管理;还实现了容器的弹性管理、运行状态管理、服务治理和配置管理。

title

title

2018-04-16 16:58:49    35    0    0

屏蔽驱动

  1. echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf

安装内核库

  1. yum -y install gcc kernel-devel "kernel-devel-uname-r == $(uname -r)" dkms

重新生成initramfs

  1. mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
  2. dracut /boot/initramfs-$(uname -r).img $(uname -r)
  3. reboot

验证

  1. lsmod | grep nouveau

安装cuda

  1. ./cuda_9.0.176_384.81_linux.run --kernel-source-path=/usr/src/kernels/3.10.0-693.el7.x86_64

验证

nvidia-smi
Mon Apr 16 16:52:53 2018
+—————————————————————————–+
| NVIDIA-SMI 384.81 Driver Version: 384.81 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 TITAN Xp Off | 00000000:

2018-04-16 10:38:01    412    0    0
 
 

GlusterFS容器化部署架构

openshift集群部署

 

服务器信息

IPHost NameMasteretcdnodeglusterfshaproxy
192.168.100.101node1NNYYY
192.168.100.102node2NNYYN|Y
192.168.100.103node3YYYYN
192.168.100.104node4YYYYN
192.168.100.105node5YYYYN


2018-04-26 10:14:38    35    0    0

inventory配置信息:

  1. # vim /etc/ansible/hosts
  2. [hostnames]
  3. 192.168.100.101 hostname=node1
  4. 192.168.100.102 hostname=node2
  5. 192.168.100.103 hostname=node3
  6. 192.168.100.104 hostname=node4
  7. 192.168.100.105 hostname=node5

playbook信息:

  1. # vim hostnames.yml
  2. ---
  3. - hosts: hostnames
  4. remote_user: root
  5. tasks:
  6. - name: change name
  7. raw: "echo {{hostname|quote}} > /etc/hostname"
  8. - name:
  9. shell: hostnamectl set-hostname {{hostname|quote}}

执行命令:

  1. # ansible-playbook hostnames.yml
  2. [WARNING]: While constructing a mapping from /root/hostnames.yml, line 7, column 8, found a duplicate dict key (shell). Using last defined value only.
  3. PLAY [hostnames] *******************************************************************************************************************************************************************************************
  4. TASK [change name] ********************************************************************************************
2017-07-13 15:31:05    46    0    0

仓库初始化

  1. [root@seanzhau.com ~]# cd docs
  2. [root@seanzhau.com ~]# git init
  3. [root@seanzhau.com ~]# git add .
  4. [root@seanzhau.com ~]# git commit -m "all"
  5. [root@seanzhau.com ~]# git remote add origin https://github.com/seanzhau/docs.git
  6. #or
  7. [root@seanzhau.com ~]# git remote add origin git@github.com:seanzhau/docs.git
  8. [root@seanzhau.com ~]# git push -u origin master

git clone

克隆远程主机版本库
比如,克隆github上的jQuery版本库。

git clone <版本库的网址> <本t地目录名>

  1. [root@seanzhau.com ~]# git clone https://github.com/jquery/jquery.git

该命令会在本地生成一个与远程主机的版本库同名的目录。如果要指定其他目录名,需要git clone命令的第二个参数。

  1. [root@seanzhau.com ~]# git clone https://github.com/jquery/jquery.git myjquery

git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。

  1. [root@seanzhau.com ~]# git clone http[s]://seanzhau.com/test/repo.git
  2. [root@seanzhau.com ~]# git clone http[s]://username:password@seanzhau.com/test/repo.git
  3. [root@seanzhau.com ~]# git clone ssh://seanzhau.com/test/repo.git
  4. [root@seanzhau.co
yellow    2016-11-03 15:17:27    94    1    0

环境准备

Docker安装需要64位OS,并且内核至少需要version 3.10。所以,你应该清楚了为什么使用CentOS 7了,试用和体验硬件资源要求不高(我测试使用双核4G)。

  1. [root@seanzhau.com ~]# uname -r
  2. 3.10.0-327.28.2.el7.x86_64

安装Docker Engine

官方提供2种安装方式:yum源和脚本安装。

yum源安装

  1. #配置yum源
  2. [root@seanzhau.com ~]# yum update
  3. [root@seanzhau.com ~]# cat << EOF > /etc/yum.repos.d/docker.repo
  4. [dockerrepo]
  5. name=Docker Repository
  6. baseurl=https://yum.dockerproject.org/repo/main/centos/7/
  7. enabled=1
  8. gpgcheck=1
  9. gpgkey=https://yum.dockerproject.org/gpg
  10. EOF
  11. [root@seanzhau.com ~]# yum makecache
  12. #安装docker-engine
  13. [root@seanzhau.com ~]# yum install docker-engine -y

脚本安装

  1. #下载脚本安装
  2. [root@seanzhau.com ~]# yum update
  3. [root@seanzhau.com ~]# curl -fsSL https://get.docker.com/ | bash

确认安装信息

  1. [root@seanzhau.com ~]# yum list installed | grep docker
  2. docker-engine.x86_64 1.12.3-1.el7.centos @dockerrepo
  3. docker-engine-selinux.noarch 1.12.3-1.el7.centos @dockerrepo
  4. [root@seanzhau.com ~]# docker version
  5. Clie
2017-07-13 15:31:05    29    0    0

简介

Yum(Yellow dog Updater, Modified)是RedHat系linux系统的前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,自动处理依赖性关系,并且一次安装所有依赖的软件包。

命令格式

  1. yum [options] COMMAND name

常用COMMAND

  1. check 检查 RPM 数据库问题
  2. check-update 检查是否有可用的软件包更新
  3. clean 删除缓存数据
  4. deplist 列出软件包的依赖关系
  5. distribution-synchronization 已同步软件包到最新可用版本
  6. downgrade 降级软件包
  7. erase 从系统中移除一个或多个软件包
  8. fs Creates filesystem snapshots, or lists/deletes current snapshots.
  9. fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.
  10. groups 显示或使用、组信息
  11. help 显示用法提示
  12. history 显示或使用事务历史
  13. info 显示关于软件包或组的详细信息
  14. install 向系统中安装一个或多个软件包
  15. list 列出一个或一组软件包
  16. load-transaction 从文件名中加载一个已存事务
  17. makecache 创建元数据缓存
  18. provides 查找提供指定内容的软件包
  19. remove 删除指定包
  20. reinstall 覆盖安装软件包
  21. repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
  22. repolist 显示已配置的源
  23. search 在软件包详细信息中搜索指定字符串
  24. shell 运行交互式的 yum shell
  25. swap Simple