自动化运维

开源运维自动化平台-opendevops

匿名 (未验证) 提交于 2019-12-02 23:35:02
开源运维自动化平台-opendevops 简介 官网 | Github | 在线体验 CODO是一款为用户提供企业多混合云、自动化运维、完全开源的云管理平台。 CODO前端基于Vue iview开发、为用户提供友好的操作界面,增强用户体验。 CODO后端基于Python Tornado开发,其优势为轻量、简洁清晰、异步非阻塞。 CODO开源多云管理平台将为用户提供多功能:ITSM、基于RBAC权限系统、Web Terminnal登陆日志审计、录像回放、强大的作业调度系统、CMDB、监控报警系统、DNS管理、配置中心等 产品架构 产品功能 Demo 我们提供了Demo供使用者体验,可点击Try Online Demo快速进行体验。 <a href=" https://demo.opendevops.cn/login " target="api_explorer"> <img src=" https://img.alicdn.com/tfs/TB12GX6zW6qK1RjSZFmXXX0PFXa-744-122.png " width="180" /> </a> 地址: http://demo.opendevops.cn/login 用户:demo 密码:2ZbFYNv9WibWcR7GB6kcEY 开始使用 注意:由于是微服务部署比较复杂,我们目前只支持分布式一步步部署,depoly

python自动化运维脚本范例

匿名 (未验证) 提交于 2019-12-02 22:56:40
1.列举当前目录以及所有子目录下的文件,并打印出绝对路径 #!/usr/bin/python # coding=utf8 import os import sys if len(sys.argv) < 2: filepath="." else: filepath=sys.argv[1] for root,dirs,files in os.walk(filepath): for filename in files: path=os.path.join(root,filename) print path 2.写一个函数,计算字符串中所有数字的和 #!/usr/bin/python # coding=utf8 import sys number="123456" def Numsum(num): sum=0 if len(num) > 0: for i in range(len(num)): if num[i] > '0' and num[i] < '9': sum=sum+int(num[i]) print "sum=%s" % sum else: sys.exit(1) if __name__ == '__main__': Numsum(number) 3.每天生成一个文件,并把磁盘的使用情况写到到这个文件中,文件名为日期格式(yyyy-mm-dd),如2018-06-10.log

自动化运维经验谈,以及为什么Docker是革命性的

匿名 (未验证) 提交于 2019-12-02 21:53:52
互联网+的需要 在信息越来越繁杂的互联网时代,公司所运行的项目越来越多,项目相关服务繁多,服务之间存在复杂的依赖关系,运维与管理任务越来越繁重,手工交付需要花费很多的人力与时间,且安全性和时效性均无法保证。对于多资源型分布/分离式部署项目,Udeployer应运而生。 随着企业对版本上线质量和速度的要求越来越高,敏捷开发、Devops的接受度越来越高 传统的交付方式因为项目之间缺少依赖、环境不一致、版本不一致、人为操作失误等情况使得项目交付过程中问题不断,而互联网企业发展节奏快、版本发布频率高,上线出故障影响面广、影响度高,因而企业对于敏捷开发、持续集成、自动发布都有强烈的需求。 自动化从构建和测试开始 运维自动化的关键在于标准化。当你有一个成熟的团队,有标准化的流程,那么运维自动化就水到渠成了。而如果你什么都没有,那就需要先设定优先级。 我们的目标当然是将所有的流程标准化,而哪些要放在前面做?做起来比较简单的,和比较重要的。我认为构建和测试的流程是最基本的第一步。这对于交付产品的公司来说容易一些,对互联网公司来说更复杂一些,而测试比构建也要复杂一些,但这是基础。构建和测试的流程标准化做好了,就可以准备做自动化的工作了。 不过我见过的很多公司连Git都还没有,仍然在用最原始的FTP push来更新代码。我的观点是,如果你还没有用上Git这样的工具,那根本就不用考虑什么自动化的问题

自动化运维工具Ansible

匿名 (未验证) 提交于 2019-12-02 21:53:52
一、简介 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible、SaltStack、Puppet、Fabric 等。 Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。 Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。 二、特性 部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。 支持Linux/UNIX及windows环境 默认使用 SSH(Secure Shell)协议对设备进行管理,用它来配置思科路由也非常方便。 主从集中化管理。 配置简单、功能强大、扩展性强。 支持 API 及自定义模块,可通过 Python 轻松扩展。 通过 Playbooks 来定制强大的配置、状态管理。 对云计算平台、大数据都有很好的支持。 提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 ---- AWX 平台。 三、总体架构 四、执行过程 五、Ansible 与 SaltStack对比 >> 最大的区别是 Ansible 无需在被监控主机部署任何客户端代理,默认通过 SSH 通道进行远程命令执行或下发配置。 >> 相同点是都具备功能强大

ansible自动化运维入门

匿名 (未验证) 提交于 2019-12-02 21:53:52
1.ansible的安装 1)使用源码安装Python3.5 安装支持包 yum - y install lrzsz vim net - tools gcc gcc - c ++ ncurses ncurses - devel unzip zlib - devel zlib openssl - devel openssl tar xf Python - 3.5 . 2.tgz - C / usr / src / ./ configure -- prefix = /usr/ local / python / make && make install ln - s / usr / local / python / bin / python3 / usr / bin / python3 2)使用pip3安装ansible / usr / local / python / bin / pip3 install ansible ln - s / usr / local / python / bin / ansible / usr / local / bin / 2.模块简单使用 1)ansible的配置文件 vim / etc / ansible / hosts 机器1 ansible_ssh_host =ip ansible_ssh_port = 22 ansible_ssh_user =

Linux运维自动化脚本之rsync

匿名 (未验证) 提交于 2019-12-02 21:53:52
Linux运维自动化脚本之rsync 起因   因为要做同步日志的脚本,考虑到机器比较多,后面也要扩展。   最近在学Python(写的比较菜)。 ˼·   组成:配置文件 + 执行脚本     脚本执行后读取配置文件的各个字段内容,并且赋值给对应的变量,在执行命令。 配置文件格式:   密码文件路径;用户名;IP;模块名;目标位置路径 Code: #!/bin/ env python import time,os,datetime with open( ‘config/ auto_rsync.conf ‘ , ‘ r ‘ ,encoding= ‘ utf-8 ‘ ) as f: file_info = f.readlines() count = 0 count1 = 1 for file_use in file_info: file_use.strip( " " ) if file_use[ 0 ] == " # " or file_use[ 0 ] == " \n " : continue else : file_line = file_use.split( " ; " ) count += 1 while count1 <= count: PASS,USER,IP,MOD_NAME,DDIR = file_line[ 0 ],file_line[ 1 ],file_line[

运维自动化之系统部署

主宰稳场 提交于 2019-12-02 17:06:36
运维自动化发展历程及技术应用 什么是自动化的安装部署操作系统? 在工作中我们可能经常部署很多台主机,手工的一台一台的安装只适合主机非常少的情况,但大的互联网公司在一些特殊的日子要部署大量的主机,以应对要到来的特大流量访问。这时候我们就不能,一台一台的安装主机了,一是效率太慢,二是太累,三是费时间。基于这个情况我们可以自动化的一起部署很多的主机,而不用我们人工一台一台的去安装部署,节约了大量的时间。 centos 6的启动流程 1.POST开机加电自检 2.MBR 读取硬盘mbr引导的前446字节,属于grub的stage1第一阶段 3.进入grub的stage1.5阶段,加载/boot分区所在的文件系统驱动 4.进入grub的stage2阶段,关键的文件已经在/boot/grub目录里面了,关键的文件 有/boot/grub.grub.conf文件,文件里面kernel /vmlinuz root=/dev/sda2,定义了内核文件所在的位置 5.加载vmlinuz内核,完成以后找/根目录,想要加载根文件系统,需要识别根所在的文件系统驱动,配合/boot/目录里面两个重要的文件,一个是vmlinuz内核文件和initramfs驱动文件完成加载根文件系统 6.加载完成根文件系统以后,启动根下面的第一个进程/sbin/init,这个进程要读取/etc/inittab配置文件

运维自动化部署

强颜欢笑 提交于 2019-12-02 16:09:35
运维自动化部署 pexpect fabric 安装 入门示例 fabric常用参数 fabric常用API fabric全局属性设定 示例1: 动态获取远程目录列表 示例2: 上传文件并执行 代码自动化部署 pexpect Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。 import pexpect import sys child = pexpect.spawn('ssh std20@123.57.211.212') child.logfile = sys.stdout #fout = file('mylog.txt', 'w') #child.logfile = fout child.expect('password:') child.sendline('std20') child.expect('std20.*') child.sendline('ls /') child.expect('std20.*') child.sendline(

自动化运维工具ansible

为君一笑 提交于 2019-12-02 14:39:28
ansible使用 ansible发展史 特性 ansible的命令执行过程: ansible的主要组成部分 ansible主要组成部分 ansible的安装 ansible配置文件 主机清单inventory、/etc/ansible/hosts ansible的配置文件/etc/ansible/ansible.cfg ansible系列命令,执行临时命令 ansible常见模块介绍: ansible-galaxy ansible-playbook:执行playbook ansible-valut ansible-console Playbook:剧本 示例 handlers和notify结合使用触发条件 ansible发展史 创始人:Michael DeHaan(cobbler和func的作者)func也是一个自动化运维工具 2012-03-09发布0.0.1版本,被红帽收购 2015-10-17,红帽被IBM收购 特性 模块化:调用特定的模块,完成特定的任务 有Paramiko(Python开发的模块),PyYAML(一门语言),Jinja2(模板语言)三个关键模块 支持自定义模块 基于Python语言实现 部署简单,基于Python和SSH服务,agentless(无代理,不需要安装代理软件),走的是ssh,而ssh服务器默认安装好的 安全,基于OpenSSH协议

自动化运维Shell入门

删除回忆录丶 提交于 2019-12-02 12:23:09
运维shell 作用 项目部署 项目监控 什么是shell shell是一个程序,/bin/bash/,是一个命令解释器所有linux命令都由他来执行,打开终端就进入了 shell的交互式命令 运行方式 bash *.sh 更改可执行权限后使用./*.sh来执行 shource *.sh 语法 没有缩进要求,缩进是没有意义的 注释使用 # 双引号 "" 内嵌入变量是解释变量 单引号 '' 内写什么,就是什么,不会解释变量 shource 不会开启新的进程来执行脚本,可以跟当前窗口共享进程,以及变量 所以变量可以使用普通变量 反引号&& $() 内嵌命令将命令执行之后的结果写进变量 变量的使用 # 设 变量名为 name 且有值 调取变量方式如下 echo $name echo ${name) echo "$name" echo "${name}" #规范写法 测试语句(判断) 利用 text 和 [] 来结合内置变量 $? 来进行判断语句 #方法1 text 2 = 2 # 条件前后必须加空格 $? #方法2 [ 1 = 2 ] # `[]`内前后追加空格 $? $? 结果0为真 1为假 变量 本地变量 在当前系统的某个环境下生效的变量作用范围小 普通变量 只在当前命令窗口 环境 下才可以调用 name=langwang #