# !/usr/bin/env python
: - 编码utf - 8 -
进口一滴,操作系统、shutil zipfile,插座,datetime,时间,sys
def check_dir (filedir):
如果os.path.exists (filedir):
通过
:
打印的错误:::% s目录不存在,请检测的% filedir
退出(1)
def list_file (filedir):
filesRead=r ' % s ' % filedir
=glob.glob列表(filesRead)
文件列表=[]
我的列表:
filelist.append(我)
返回文件列表
类商品:
def <强> init 强>(自我、yy_ip db_ip):
自我。yy_ip=yy_ip
自我。db_ip=db_ip
自我。redispw=5136 ba64f8d63bfb
#自我。日期=time.strftime (y ' % - % - % d ', time.localtime (time.time ()))
自我。RootPath='/根/部署'
自我。DockerPath=自我。RootPath + '/码头工人/docker-ce/docker-ce '
自我。SoftwarePath=自我。RootPath +/软件
自我。SoftwareOraclePath=自我。RootPath + '/oracle '
自我。临时文件=?tmp/hs_intall_tmp.txt”
<代码> check_dir (self.RootPath) shell="根软nofile 65535 \ nroot硬nofile 65535 \ n *软nofile 65535 \ n *硬nofile 65535 \ n” self.check_file_bak_writefile (“/etc/安全/limits.conf”,壳牌) def file_write(自我,文件名,壳): file_obj=open (filename, ' + ') file_obj.write(壳) file_obj.close () def check_file_bak_shell(自我,file1、壳牌): 如果os.path.exists (' % s.bak ' % file1): 打印的信息:::% s.bak备份存在,不再备份“% (file1) 其他: 操作系统。系统(cp %年代% s.bak % (file1 file1)) 打印的信息:::% s备份完毕,文件名为:% s.bak ' % (file1 file1) os.system(壳) def check_file_bak_writefile(自我,file1、壳牌): 如果os.path.exists (' % s.bak ' % (file1)): 打印的信息:::% s.bak备份存在,不再备份“% (file1) 其他: 操作系统。系统(cp %年代% s.bak % (file1 file1)) 打印的信息:::% s备份完毕,文件名为:% s.bak ' % (file1 file1) self.file_write (file1、壳牌) def grep_image(自我,depname): 行=操作系统。popen(“码头工人图片| grep ' % s '比;% s“% (depname self.TmpFile) .read () .strip () check_dir (self.TmpFile) 张开(self.TmpFile) f: f的线: 库,标签,IMAGEID、CREAT1 CREAT2 CREAT3、大?地图(str, line.split ()) 形象=库+‘:’+标签 返回图像 def install_docker(自我): check_dir (self.DockerPath) os.chdir (self.DockerPath) 打印的信息:::百胜码头工人开始” 操作系统。系统(' yum安装- y。/*在/dev/null 2祝辞,1 ') #操作系统。系统(yum安装- y。/*) 打印的信息:::百胜码头工人完毕” os.chdir (self.RootPath +/码头工人) check_dir (“daemon.json”) 操作系统。系统(“mkdir - p/etc/docker/,,\ cp守护进程。json/etc/docker/? check_dir (“/usr/lib/systemd/系统/docker.service ') shell=r " sed - i/ExecStart/我\ ExecStartPost=\ \/bin/bash \ \/onDockerStart/根。sh/usr/lib/systemd/system/docker.service” self.check_file_bak_shell (“/usr/lib/systemd/系统/docker.service”,外壳) 操作系统。系统(“\ cp onDockerStart。sh/root/,,chmod + x/root/onDockerStart。上海,,systemctl daemon-reload”) self.check_file_bak_shell('/根/ashrc”、“(猫/root/deployment/docker/bash_docker。sh在祝辞/root/.bashrc”) 操作系统。系统(“服务码头工人开始”) 打印的信息:::码头工人安装完毕” def init_yy(自我): 试一试: 操作系统。网络系统(“码头工人创造——子网=172.21.0.0/16 huoshu 2比;/dev/null”) 除了: 通过 最后: 打印的信息:::huoshu网段设置完毕” AA=list_file (“% s/* . tar”% self.SoftwarePath) 打印的信息:::开始加载图像镜像” 因为我在AA: 操作系统。系统(“码头工人加载& lt;% s ' % i) check_dir (self.SoftwarePath +/drgsburster) check_dir (self.SoftwarePath +/前) 打印的信息:::配置drgsburster文件夹” 操作系统。系统(“\ cp - r % s/drgsburster/opt ' % self.SoftwarePath) 打印的信息:::配置前文件夹” 操作系统。系统(“mkdir - p/opt/应用程序/,,\ cp - r % s/前面/opt/应用程序/' % self.SoftwarePath) def init_db(自我): AA=list_file (“% s/* . tar”% self.SoftwareOraclePath) 打印的信息:::开始加载图像镜像” 因为我在AA: 操作系统。系统(“码头工人加载& lt;% s ' % i) AA=list_file (' % s/* gz ' % self.SoftwareOraclePath) 因为我在AA: 打印的信息:::开始拷贝% s数据文件至/家庭的% 操作系统。系统(\ cp %年代/home/%我) 打印的信息:::开始解压甲骨文数据文件的 操作系统。系统(rm的射频/home/oracle”) 操作系统。系统(“cd/home/,,焦油-zxvf % s在/dev/null 2祝辞,1 ' % i) def start_yy(自我): NginxImage=self.grep_image (“nginx”) 打印的信息:::码头工人运行启动:% s的% NginxImage 操作系统。系统(“码头工人停止nginx 2在/dev/null,,码头工人rm nginx 2在/dev/null”) 操作系统。系统(“码头工人运行- d——重启=总净huoshu——ip=172.21.0.2 \初始化脚本