python 运维发布代码

3 代码发布

步骤,流程
1 获取代码
	程序员提交代码到代码服务器

	获取代码:权限 打包代码:tar 传输代码:scp

	停止应用:先近后远 解压代码:tar 放置代码:先备后放

	开启应用:先远后近 检查效果:浏览器+端口 对外开放

2 打包代码(代码服务器执行)
	方便传输
	tar zcf 压缩文件名 待压缩内容
	tar xf 压缩文件名
	zcat 压缩文件名  (查看压缩包内容)
				
3 传输代码
	线上服务器--获取---》代码服务器代码
	scp 远程主机:绝对路径 目标路径
	先登录后拷贝

	将本地文件推送到远程主机:scp python.tar.gz root@192.168.8.15:/root/
	将远程主机的文件拉取到本地:scp root@192.168.8.15:/root/python.tar.gz ./

z:指定压缩文件的格式为 tar.gz
c:	压缩
v:  显示详细过程
f:	指定压缩文件
x:	解压
文件的压缩:压缩格式:tar zcvf 压缩后的文件名 将要压缩的文件
文件的解压:解压格式:tar xf 压缩后的文件名

	
	
4 关闭应用
	先关离用户近的,后关离用户远的

5 解压代码

6 放置代码
	先备份后放置
	备份加时间戳
	mv tar_code.tar.gz ~/tar_code.tar.gz`date +%Y%m%d%H%M%S`

显示当前日期:date +%F  2017-09-28
显示当前时间:date +%T  03:06:3
显示当前日期:date +%Y%m%d  20170928
显示当前时间:date +%H%M%S  030643
年月日时分秒:date +%Y%m%d%H%M%S

复制备份:cp nihao nihao-$(date +%Y%m%d%H%M%S)
移动备份:mv nihao nihao-$(date +%Y%m%d%H%M%S)

7 开启应用
	先开离用户远,在开离用户近的
	
8 检查
	netstat -ntl | grep 80

4 基础目录环境

	mkdir /data/{server,logs,backup,softs,virtual,scripts,codes} -p
	一步创建所有目录--》父目录不存在一并创建

5 主机网络环境(跨主机免密码认证的原理)

	1 客户端生成密钥对(在线上服务器运行) 
		ssh-keygen -t rsa
		公钥放在:/root/.ssh/id_rsa.pub
	2 将公钥传给服务器(传给代码服务器)
		在代码服务器中/etc/ssh/sshd_config定义了秘钥存储文件(AuthorizedKeysFile	%h/.ssh/authorized_keys)
		echo “公钥”>> authorized_keys 
	3 重启ssh服务 (在代码服务器执行)
	sudo service ssh restart	

6 Django安装

	1 虚拟环境安装
		1 进入虚拟环境
		export WORKON_HOME=/data/virtual/
		source /usr/local/bin/virtualenvwrapper.sh
		mkvirtualenv -p python3 django
	2 sz rz(xshell)
	3 安装django
		1 查看INSTALL
		2 python setup.py build(可选)
		3 python setup.py install
	4 配置django
		1 创建项目
			django-admin startproject itcast
		2 创建应用
			python manage.py startapp test1
			修改test1/views.py
		3 注册应用
			修改 itcast/settings.py
		4 关联URL
			修改 itcast/urls.py
		5 启动django
			python manage.py runserver > /dev/null 2>&1 &

7 nginx 安装

	1 pcre插件安装(nginx依赖旧版本pcre)
		./configure && make && make install
		./configure 裁剪软件 定制安装路径
		make 编译
		make install 安装
		
2 nginx安装
	./configure --prefix=/data/server/nginx --without-http_gzip_module
	(指定安装路径在/data/server/nginx,裁剪gzip模块)
	make && make install
	
	动态库链接失败
	ldd 查找搜索路径
	ln -s  /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/libpcre.so.1
	(创建软连接)
	
	配置代理:
		http配置段server段增加location配置
		location /hello/ {
			proxy_pass http://127.0.0.1:8000;
		}

8 手工代码发布

1 获取代码
	

2 打包代码(代码服务器执行)
	cd /home/dev/data/codes
	tar zcf tar_code.tar.gz test1/					
3 传输代码
	cd /data/codes
	scp dev@192.168.42.71:/home/dev/data/codes/tar_code.tar.gz .
4 关闭应用
	cd /data/server/nginx/sbin
	./nginx -s stop
	kill `lsof -ti :8000`
5 解压代码
	cd /data/codes
	tar xf tar_code.tar.gz
6 放置代码
	cd /data/server/itcast/test1
	mv views.py /data/backup/views.py-`date +%Y%m%d%H%M%S`
	cd /data/codes/test1
	mv views.py /data/server/itcast/test1/
7 开启应用
	export WORKON_HOME=/data/virtual/
	source /usr/local/bin/virtualenvwrapper.sh
	workon django
	cd /data/server/itcast
	python manage.py runserver > /dev/null 2>&1 &
	cd /data/server/nginx/sbin
	./nginx
8 检查
	netstat -ntl | grep 80

9 简单脚本编写

	1 命令罗列
	2 固定内容变量化(方便修改)
	3 功能函数化(方便扩展)

远程执行命令:
	ssh 远程主机登录用户名@远程主机ip地址 “命令”

10 大型脚本编写

1 搭建框架(将步骤变成函数)
2 命令填充(将命令写到函数内)
3 日志功能:
	1 定义写日志函数(将时间日期步骤等信息重定向追加到文件)
	2 在各个函数内调用写日志函数
	
4 锁文件功能:
	1 编写加锁解锁函数---》创建和删除文件
	2 在所有步骤之前先调用加锁函数,所有步骤完毕后调用解锁函数
	3 在脚本执行前先判断文件是否存在
	
5 功能参数化
	case判断脚本参数是否是当前支持的功能
	增加参数个数安全性的判断

11 脚本调试

bash -n 脚本名 检查语法
bash -v 脚本名 先打印一遍脚本内容再执行
bash -x 脚本名 打印一句执行一句
  • 18
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值