WOT软件技术峰会,自动化运维专场现场视频

学习资源OpenSkill 发表了文章 • 0 个评论 • 1060 次浏览 • 2015-10-15 12:34 • 来自相关话题

快乐运维-常景志

运维有人说苦逼,但是我们需要苦中作乐,找到真正的运维乐点!

 

360运维自动化平台之大规模服务监控平台-刘浩

看看大规模的服务监控平台体系,学习大体系服务监控的思路!


游戏虚拟化运维实践-肖力

在这个云计算的时代,虚拟化可谓正值青年。看力哥如何利用虚拟化技术玩转游戏运维!这里推荐一下力哥著作:深度实践KVM:核心技术、管理运维、性能优化与项目实施一书


字节码和网络抓包在应用性能管理中的实践-黄东

网络可谓是运维者必修一课,如果你不了解网络,你不知道攻击你的人,是怎么发起,怎么进入的,那只好等死,抓包就是我们常用的分析手法!查看你应用性能再网络方面的缺陷和可优化之地!


基于Python构建可扩展的自动化运维平台-刘天斯

近几年Python可谓成了运维者必修课程了,随着DevOps再国内的盛行!看大神如何设计、玩转自动化运维之路!



大会PPT资料下载地址:http://pan.baidu.com/s/1o69vgZw
 
OpenSkill.CN 开源技术社区 基于51cto整理分享!
开源技术社区QQ群号:372476089  欢迎加入互相学习
扫码关注微信订阅号:




运维杂谈微信群: 查看全部


快乐运维-常景志


运维有人说苦逼,但是我们需要苦中作乐,找到真正的运维乐点!


 


360运维自动化平台之大规模服务监控平台-刘浩


看看大规模的服务监控平台体系,学习大体系服务监控的思路!



游戏虚拟化运维实践-肖力


在这个云计算的时代,虚拟化可谓正值青年。看力哥如何利用虚拟化技术玩转游戏运维!这里推荐一下力哥著作:深度实践KVM:核心技术、管理运维、性能优化与项目实施一书



字节码和网络抓包在应用性能管理中的实践-黄东


网络可谓是运维者必修一课,如果你不了解网络,你不知道攻击你的人,是怎么发起,怎么进入的,那只好等死,抓包就是我们常用的分析手法!查看你应用性能再网络方面的缺陷和可优化之地!



基于Python构建可扩展的自动化运维平台-刘天斯


近几年Python可谓成了运维者必修课程了,随着DevOps再国内的盛行!看大神如何设计、玩转自动化运维之路!




大会PPT资料下载地址:http://pan.baidu.com/s/1o69vgZw
 
OpenSkill.CN 开源技术社区 基于51cto整理分享!
开源技术社区QQ群号:372476089  欢迎加入互相学习
扫码关注微信订阅号:
opsk.jpg

运维杂谈微信群:
witops.png

HBase file layout needs to be upgraded案例分析

大数据/云计算采菊篱下 发表了文章 • 0 个评论 • 2559 次浏览 • 2015-10-15 01:00 • 来自相关话题

今天在一个内网的测试环境平台,kafka的river插件状态非正常,然后同事只好重建kafka river,river的状态始终无法正常,没有办法,同事对服务还不是很熟悉,我只好帮忙看看了!
 
因为kafka 的river插件作为kafka消息数据的consumers角色,把消费掉的数据,通过Hbase转存储到hdfs中!
如下所示是river对hbase的配置:<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.2.2.39:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>10.2.2.39:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.2.2.56,10.2.2.94,10.2.2.225</value>
</property>
</configuration>从这可以看出river插件是需要hbase的,然后我执行创建river的命令,tail观看到hbase master的hbase-root-master-hbase1.log如下:2015-10-14 17:34:13,980 INFO [master:hbase1:60000] util.FSUtils: Waiting for dfs to exit safe mode...从log中可以看出hbase在等待hdfs退出安全模式,为什么要等Hdfs退出安全模式呢?那下面就具体看看Hdfs的log中有什么线索,查看Hdfs的Namenode的hadoop-root-namenode-had1.log记录如下:2015-10-14 17:33:52,283 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.运行如下命令等待退出安全模式bin/hadoop dfsadmin -safemode wait发现半分钟后没有反映,然后运行如下命令检查hdfs的健康状态bin/hadoop fsck / 发现有很多corrupt blocks,不过还好备份数大于1.此时,hdfs需要自动的把备份数增加到2,所以需要对数据进行写操作,必须退出安全模式,于是:bin/hadoop dfsadmin -safemode leave关闭之后等待集群把数据备份好,达到2,耐心等待一段时间吧,看数据量的大小,达到2之后,运行:bin/hadoop fsck -move也可以尝试:执行健康检查,删除损坏掉的block。 bin/hdfs fsck  /  -delete 注意: 这种方式会出现数据丢失,损坏的block会被删掉.

把那些破坏的块移到/lost+found这个目录下面,启动Hbase,发现Hmaster启动之后进程又消失了,查看日志:2015-10-14 17:48:29,476 FATAL [master:hbase1:60000] master.HMaster: Unhandled exception. Starting shutdown.
org.apache.hadoop.hbase.util.FileSystemVersionException: HBase file layout needs to be upgraded. You have version null and I want version 8. Consult http://hbase.apache.org/book.html for further information about upgrading HBase. Is your hbase.rootdir valid? If so, you may need to run 'hbase hbck -fixVersionFile'.
at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:600)
at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:462)
at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:153)
at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:129)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:800)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:605)
at java.lang.Thread.run(Thread.java:744)从什么log中可以发现可能是hbase.version文件消失了!我看很多网友的做法是先把/hbase清理调,然后重启就好了,但是以前的数据就丢失了,这有点不科学。于是我:bin/hadoop fs -ls /hbase
发现/hbase/hbase.version确实已经消失了,这才恍然大悟,原来是之前的这个文件可能被损坏了,去/lost+found目录找确实能找到,但是这个文件似乎出了问题,-ls它也看不到。于是想到一个办法,我做了以下操作:bin/hadoop fs -mv /hbase /hbase.bk重启HBase,这时就生成了/hbase/hbase.version文件,然后:bin/hadoop fs -cp /hbase/hbase.version /hbase.bk/

bin/hadoop fs -rmr /hbase

bin/hadoop fs -mv /hbase.bk /hbase这样再次重启HBase,发现Hbase开始splitting hlogs,数据得以恢复。然后再重建river,状态可以正常了! 查看全部
hbase_image.png
今天在一个内网的测试环境平台,kafka的river插件状态非正常,然后同事只好重建kafka river,river的状态始终无法正常,没有办法,同事对服务还不是很熟悉,我只好帮忙看看了!
 
因为kafka 的river插件作为kafka消息数据的consumers角色,把消费掉的数据,通过Hbase转存储到hdfs中!
如下所示是river对hbase的配置:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.2.2.39:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>10.2.2.39:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.2.2.56,10.2.2.94,10.2.2.225</value>
</property>
</configuration>
从这可以看出river插件是需要hbase的,然后我执行创建river的命令,tail观看到hbase master的hbase-root-master-hbase1.log如下:
2015-10-14 17:34:13,980 INFO  [master:hbase1:60000] util.FSUtils: Waiting for dfs to exit safe mode...
从log中可以看出hbase在等待hdfs退出安全模式,为什么要等Hdfs退出安全模式呢?那下面就具体看看Hdfs的log中有什么线索,查看Hdfs的Namenode的hadoop-root-namenode-had1.log记录如下:
2015-10-14 17:33:52,283 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
运行如下命令等待退出安全模式
bin/hadoop dfsadmin -safemode wait
发现半分钟后没有反映,然后运行如下命令检查hdfs的健康状态
bin/hadoop fsck / 
发现有很多corrupt blocks,不过还好备份数大于1.此时,hdfs需要自动的把备份数增加到2,所以需要对数据进行写操作,必须退出安全模式,于是:
bin/hadoop  dfsadmin -safemode leave
关闭之后等待集群把数据备份好,达到2,耐心等待一段时间吧,看数据量的大小,达到2之后,运行:
bin/hadoop  fsck -move
也可以尝试:执行健康检查,删除损坏掉的block。 bin/hdfs fsck  /  -delete 注意: 这种方式会出现数据丢失,损坏的block会被删掉.

把那些破坏的块移到/lost+found这个目录下面,启动Hbase,发现Hmaster启动之后进程又消失了,查看日志:
2015-10-14 17:48:29,476 FATAL [master:hbase1:60000] master.HMaster: Unhandled exception. Starting shutdown.
org.apache.hadoop.hbase.util.FileSystemVersionException: HBase file layout needs to be upgraded. You have version null and I want version 8. Consult http://hbase.apache.org/book.html for further information about upgrading HBase. Is your hbase.rootdir valid? If so, you may need to run 'hbase hbck -fixVersionFile'.
at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:600)
at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:462)
at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:153)
at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:129)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:800)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:605)
at java.lang.Thread.run(Thread.java:744)
从什么log中可以发现可能是hbase.version文件消失了!我看很多网友的做法是先把/hbase清理调,然后重启就好了,但是以前的数据就丢失了,这有点不科学。于是我:
bin/hadoop fs -ls /hbase
发现/hbase/hbase.version确实已经消失了,这才恍然大悟,原来是之前的这个文件可能被损坏了,去/lost+found目录找确实能找到,但是这个文件似乎出了问题,-ls它也看不到。于是想到一个办法,我做了以下操作:
bin/hadoop fs -mv /hbase /hbase.bk
重启HBase,这时就生成了/hbase/hbase.version文件,然后:
bin/hadoop fs -cp /hbase/hbase.version /hbase.bk/

bin/hadoop fs -rmr /hbase

bin/hadoop fs -mv /hbase.bk /hbase
这样再次重启HBase,发现Hbase开始splitting hlogs,数据得以恢复。然后再重建river,状态可以正常了!

Linux学习入门vmware虚拟机安装视频教程

学习资源OpenSkill 发表了文章 • 0 个评论 • 769 次浏览 • 2015-10-15 00:01 • 来自相关话题

Linux入门学习者,第一关莫过于安装vmware虚拟机,安装属于自己喜欢的Linux开源系统。下面分享的就是vmware虚拟机安装的教学视频! 查看全部
Linux入门学习者,第一关莫过于安装vmware虚拟机,安装属于自己喜欢的Linux开源系统。下面分享的就是vmware虚拟机安装的教学视频!


网民都是自私的

互联网资讯OpenSkill 发表了文章 • 0 个评论 • 734 次浏览 • 2015-10-14 23:44 • 来自相关话题

 视频演讲人:新媒体营销鼓山文化的CEO铜雀叔叔,这位90后的CEO旗下签约了像同道大叔、小野妹学吐槽、五行属二等知名段子手。

虽然整个演讲主题略微松散了一些,可是,毕竟是实战派人物,有不少干货在里面。分享观看! 查看全部
 视频演讲人:新媒体营销鼓山文化的CEO铜雀叔叔,这位90后的CEO旗下签约了像同道大叔、小野妹学吐槽、五行属二等知名段子手。

虽然整个演讲主题略微松散了一些,可是,毕竟是实战派人物,有不少干货在里面。分享观看!


Ansible常用模块介绍

运维技术采菊篱下 发表了文章 • 0 个评论 • 3221 次浏览 • 2015-10-12 19:56 • 来自相关话题

之前文章http://openskill.cn/article/120已经介绍了what is ansible?下面给大家介绍介绍ansible常用的几个模块
 
Ansible通过模块的方式来完成一些远程的管理工作。可以通过ansible-doc -l查看所有模块,可以使用ansible-doc -s module来查看某个模块的参数具体用法,也可以使用ansible-doc help module来查看该模块更详细的信息。
 

setup

可以用来收集远程主机的一些基本信息:
ansible -i /etc/ansible/hosts test -m setup

ping

可以用来测试远程主机的运行状态:
ansible test -m ping

file

设置文件的属性
file模块包含如下选项:
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group:定义文件/目录的属组
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被链接的源文件的路径,只应用于state=link的情况
dest:被链接到的路径,只应用于state=link的情况
state:
directory:如果目录不存在,创建目录
file:即使文件不存在,也不会被创建
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件
示例:
ansible test -m file -a "src=/etc/fstab dest=/tmp/fstab state=link"
ansible test -m file -a "path=/tmp/fstab state=absent"
ansible test -m file -a "path=/tmp/test state=touch"
ansible test -m file -a "path=/tmp/test state=directory"
ansible test -m file -a "path=/tmp/testd state=directory owner=root group=root mode=777"

copy

复制文件到远程主机
copy模块包含如下选项:
backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no
content:用于替代"src",可以直接设定指定文件的值
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
directory_mode:递归的设定目录的权限,默认为系统默认权限
force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
others:所有的file模块里的选项都可以在这里使用
src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用"/"来结尾,则只复制目录里的内容,如果没有使用"/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
validate :The validation command to run before copying into place. The path to the file to validate is passed in via '%s' which must be present as in the visudo example below.
示例:
ansible test -m copy -a "src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode=0644"
ansible test -m copy -a "src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes"
ansible test -m copy -a "src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'"

command

在远程主机上执行命令
command模块包含如下选项:
creates:一个文件名,当该文件存在,则该命令不执行
free_form:要执行的linux指令
chdir:在执行指令之前,先切换到该指定的目录
removes:一个文件名,当该文件不存在,则该选项不执行
executable:切换shell来执行指令,该执行路径必须是一个绝对路径
示例:
ansible test -a "ls /root"

shell

切换到某个shell执行指定的指令,参数与command相同。
示例:
ansible test -m shell -a "somescript.sh >> somelog.txt"

service

用于管理服务
该模块包含如下选项:
arguments:给命令行提供一些选项
enabled:是否开机启动 yes|no
name:必选项,服务名称
pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
runlevel:运行级别
sleep:如果执行了restarted,在则stop和start之间沉睡几秒钟
state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)
示例:
ansible test -m service -a "name=httpd state=started enabled=yes"
ansible test -m service -a "name=foo pattern=/usr/bin/foo state=started"
ansible test -m service -a "name=network state=restarted args=eth0"

cron

用于管理计划任务
包含如下选项:
backup:对远程主机上的原任务计划内容修改之前做备份
cron_file:如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户的任务计划
day:日(1-31,[i],[/i]/2,……)
hour:小时(0-23,[i],[/i]/2,……)
minute:分钟(0-59,[i],[/i]/2,……)
month:月(1-12,[i],[/i]/2,……)
weekday:周(0-7,*,……)
job:要执行的任务,依赖于state=present
name:该任务的描述
special_time:指定什么时候执行,参数:reboot,yearly,annually,monthly,weekly,daily,hourly
state:确认该任务计划是创建还是删除
user:以哪个用户的身份执行
示例:
ansible test -m cron -a 'name="check dirs" hour="5,2" job="ls -alh > /dev/null"'
ansible test -m cron -a 'name="a job for reboot" special_time=reboot job="/some/job.sh"'
ansible test -m cron -a 'name="yum autoupdate" weekday="2" minute=0 hour=12 user="root" job="YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate" cron_file=ansible_yum-autoupdate'
ansilbe test -m cron -a 'cron_file=ansible_yum-autoupdate state=absent'

filesystem

在块设备上创建文件系统
选项:
dev:目标块设备
force:在一个已有文件系统的设备上强制创建
fstype:文件系统的类型
opts:传递给mkfs命令的选项

user

管理用户
home:
groups:
uid
password:
name:
createhome:
system:
remove:
state:
shell:
需要特别说明的是,password后面指定的密码不能是明文,后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中,而登陆的时候输入的密码会被hash加密以后再去与/etc/shadow中存放的密码去做对比,会出现不一致的现象。所以需要先将密码字符串进行加密处理:openssl passwd -salt -1 "123456",然后将得到的字符串放到password中即可。

synchronize

使用rsync同步文件
archive
checksum
delete
dest
src
dest_port
existing_only: skip createing new files on receiver
links
owner
mode:(push, pull)
recursive
rsync_path
times:Preserve modification times
示例:
src=some/relative/path dest=/some/absolute/path rsync_path="sudo rsync"
src=some/relative/path dest=/some/absolute/path archive=no links=yes
src=some/relative/path dest=/some/absolute/path checksum=yes times=no
src=/tmp/helloworld dest=/var/www/helloword rsync_opts=--no-motd,--exclude=.git mode=pull

mount

配置挂载点
选项:
dump
fstype:必选项,挂载文件的类型
name:必选项,挂载点
opts:传递给mount命令的参数
passno
src:必选项,要挂载的文件
state:必选项
present:只处理fstab中的配置
absent:删除挂载点
mounted:自动创建挂载点并挂载之
umounted:卸载
示例:
name=/mnt/dvd src=/dev/sr0 fstype=iso9660 opts=ro state=present
name=/srv/disk src='LABEL=SOME_LABEL' state=present
name=/home src='UUID=b3e48f45-f933-4c8e-a700-22a159ec9077' opts=noatime state=present

ansible test -a 'dd if=/dev/zero of=/disk.img bs=4k count=1024'
ansible test -a 'losetup /dev/loop0 /disk.img'
ansible test -m filesystem 'fstype=ext4 force=yes opts=-F dev=/dev/loop0'
ansible test -m mount 'name=/mnt src=/dev/loop0 fstype=ext4 state=mounted opts=rw'

raw

类似command,可以传递管道原文地址:http://devopsh.com/774.html  查看全部
之前文章http://openskill.cn/article/120已经介绍了what is ansible?下面给大家介绍介绍ansible常用的几个模块
 
Ansible通过模块的方式来完成一些远程的管理工作。可以通过ansible-doc -l查看所有模块,可以使用ansible-doc -s module来查看某个模块的参数具体用法,也可以使用ansible-doc help module来查看该模块更详细的信息。
 


setup


可以用来收集远程主机的一些基本信息:
ansible -i /etc/ansible/hosts test -m setup


ping


可以用来测试远程主机的运行状态:
ansible test -m ping


file


设置文件的属性
file模块包含如下选项:
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group:定义文件/目录的属组
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被链接的源文件的路径,只应用于state=link的情况
dest:被链接到的路径,只应用于state=link的情况
state:
directory:如果目录不存在,创建目录
file:即使文件不存在,也不会被创建
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件
示例:
ansible test -m file -a "src=/etc/fstab dest=/tmp/fstab state=link"
ansible test -m file -a "path=/tmp/fstab state=absent"
ansible test -m file -a "path=/tmp/test state=touch"
ansible test -m file -a "path=/tmp/test state=directory"
ansible test -m file -a "path=/tmp/testd state=directory owner=root group=root mode=777"


copy


复制文件到远程主机
copy模块包含如下选项:
backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no
content:用于替代"src",可以直接设定指定文件的值
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
directory_mode:递归的设定目录的权限,默认为系统默认权限
force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
others:所有的file模块里的选项都可以在这里使用
src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用"/"来结尾,则只复制目录里的内容,如果没有使用"/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
validate :The validation command to run before copying into place. The path to the file to validate is passed in via '%s' which must be present as in the visudo example below.
示例:
ansible test -m copy -a "src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode=0644"
ansible test -m copy -a "src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes"
ansible test -m copy -a "src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'"


command


在远程主机上执行命令
command模块包含如下选项:
creates:一个文件名,当该文件存在,则该命令不执行
free_form:要执行的linux指令
chdir:在执行指令之前,先切换到该指定的目录
removes:一个文件名,当该文件不存在,则该选项不执行
executable:切换shell来执行指令,该执行路径必须是一个绝对路径
示例:
ansible test -a "ls /root"


shell


切换到某个shell执行指定的指令,参数与command相同。
示例:
ansible test -m shell -a "somescript.sh >> somelog.txt"


service


用于管理服务
该模块包含如下选项:
arguments:给命令行提供一些选项
enabled:是否开机启动 yes|no
name:必选项,服务名称
pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
runlevel:运行级别
sleep:如果执行了restarted,在则stop和start之间沉睡几秒钟
state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)
示例:
ansible test -m service -a "name=httpd state=started enabled=yes"
ansible test -m service -a "name=foo pattern=/usr/bin/foo state=started"
ansible test -m service -a "name=network state=restarted args=eth0"


cron


用于管理计划任务
包含如下选项:
backup:对远程主机上的原任务计划内容修改之前做备份
cron_file:如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户的任务计划
day:日(1-31,[i],[/i]/2,……)
hour:小时(0-23,[i],[/i]/2,……)
minute:分钟(0-59,[i],[/i]/2,……)
month:月(1-12,[i],[/i]/2,……)
weekday:周(0-7,*,……)
job:要执行的任务,依赖于state=present
name:该任务的描述
special_time:指定什么时候执行,参数:reboot,yearly,annually,monthly,weekly,daily,hourly
state:确认该任务计划是创建还是删除
user:以哪个用户的身份执行
示例:
ansible test -m cron -a 'name="check dirs" hour="5,2" job="ls -alh > /dev/null"'
ansible test -m cron -a 'name="a job for reboot" special_time=reboot job="/some/job.sh"'
ansible test -m cron -a 'name="yum autoupdate" weekday="2" minute=0 hour=12 user="root" job="YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate" cron_file=ansible_yum-autoupdate'
ansilbe test -m cron -a 'cron_file=ansible_yum-autoupdate state=absent'


filesystem


在块设备上创建文件系统
选项:
dev:目标块设备
force:在一个已有文件系统的设备上强制创建
fstype:文件系统的类型
opts:传递给mkfs命令的选项


user


管理用户
home:
groups:
uid
password:
name:
createhome:
system:
remove:
state:
shell:
需要特别说明的是,password后面指定的密码不能是明文,后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中,而登陆的时候输入的密码会被hash加密以后再去与/etc/shadow中存放的密码去做对比,会出现不一致的现象。所以需要先将密码字符串进行加密处理:openssl passwd -salt -1 "123456",然后将得到的字符串放到password中即可。


synchronize


使用rsync同步文件
archive
checksum
delete
dest
src
dest_port
existing_only: skip createing new files on receiver
links
owner
mode:(push, pull)
recursive
rsync_path
times:Preserve modification times
示例:
src=some/relative/path dest=/some/absolute/path rsync_path="sudo rsync"
src=some/relative/path dest=/some/absolute/path archive=no links=yes
src=some/relative/path dest=/some/absolute/path checksum=yes times=no
src=/tmp/helloworld dest=/var/www/helloword rsync_opts=--no-motd,--exclude=.git mode=pull


mount


配置挂载点
选项:
dump
fstype:必选项,挂载文件的类型
name:必选项,挂载点
opts:传递给mount命令的参数
passno
src:必选项,要挂载的文件
state:必选项
present:只处理fstab中的配置
absent:删除挂载点
mounted:自动创建挂载点并挂载之
umounted:卸载
示例:
name=/mnt/dvd src=/dev/sr0 fstype=iso9660 opts=ro state=present
name=/srv/disk src='LABEL=SOME_LABEL' state=present
name=/home src='UUID=b3e48f45-f933-4c8e-a700-22a159ec9077' opts=noatime state=present

ansible test -a 'dd if=/dev/zero of=/disk.img bs=4k count=1024'
ansible test -a 'losetup /dev/loop0 /disk.img'
ansible test -m filesystem 'fstype=ext4 force=yes opts=-F dev=/dev/loop0'
ansible test -m mount 'name=/mnt src=/dev/loop0 fstype=ext4 state=mounted opts=rw'


raw


类似command,可以传递管道
原文地址:http://devopsh.com/774.html 

docker与虚拟机性能比较

大数据/云计算Geek小A 发表了文章 • 0 个评论 • 2322 次浏览 • 2015-10-12 19:14 • 来自相关话题

概要

docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论述docker与传统虚拟化方式的不同之处,并比较物理机、docker容器、虚拟机三者的性能差异及差异产生的原理。

docker与虚拟机实现原理比较

如下图分别是虚拟机与docker的实现框架。



比较两图的差异,左图虚拟机的Guest OS层和Hypervisor层在docker中被Docker Engine层所替代。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整操作系统内核;虚拟机的Hypervisor层可以简单理解为一个硬件虚拟化平台,它在Host OS是以内核态的驱动存在的。
 虚拟机实现资源隔离的方法是利用独立的OS,并利用Hypervisor虚拟化CPU、内存、IO设备等实现的。例如,为了虚拟CPU,Hypervisor会为每个虚拟的CPU创建一个数据结构,模拟CPU的全部寄存器的值,在适当的时候跟踪并修改这些值。需要指出的是在大多数情况下,虚拟机软件代码是直接跑在硬件上的,而不需要Hypervisor介入。只有在一些权限高的请求下,Guest OS需要运行内核态修改CPU的寄存器数据,Hypervisor会介入,修改并维护虚拟的CPU状态。

Hypervisor虚拟化内存的方法是创建一个shadow page table。正常的情况下,一个page table可以用来实现从虚拟内存到物理内存的翻译。在虚拟化的情况下,由于所谓的物理内存仍然是虚拟的,因此shadow page table就要做到:虚拟内存->虚拟的物理内存->真正的物理内存。

对于IO设备虚拟化,当Hypervisor接到page fault,并发现实际上虚拟的物理内存地址对应的是一个I/O设备,Hypervisor就用软件模拟这个设备的工作情况,并返回。比如当CPU想要写磁盘时,Hypervisor就把相应的数据写到一个host OS的文件上,这个文件实际上就模拟了虚拟的磁盘。
对比虚拟机实现资源和环境隔离的方案,docker就显得简练很多。docker Engine可以简单看成对Linux的NameSpace、Cgroup、镜像管理文件系统操作的封装。docker并没有和虚拟机一样利用一个完全独立的Guest OS实现环境隔离,它利用的是目前Linux内核本身支持的容器方式实现资源和环境隔离。简单的说,docker利用namespace实现系统环境的隔离;利用Cgroup实现资源限制;利用镜像实现根目录环境的隔离。通过docker和虚拟机实现原理的比较,我们大致可以得出一些结论:(1)docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有优势,具体的效率对比在下几个小节里给出。在IO设备虚拟化上,docker的镜像管理有多种方案,比如利用Aufs文件系统或者Device Mapper实现docker的文件管理,各种实现方案的效率略有不同。(2)docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。我们知道,引导、加载操作系统内核是一个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个过程,因此新建一个docker容器只需要几秒钟。另外,现代操作系统是复杂的系统,在一台物理机上新增加一个操作系统的资源开销是比较大的,因此,docker对比虚拟机在资源消耗上也占有比较大的优势。事实上,在一台物理机上我们可以很容易建立成百上千的容器,而只能建立几个虚拟机。

docker与虚拟机计算效率比较

在上一节我们从原理的角度推测docker应当在CPU和内存的利用效率上比虚拟机高。在这一节我们将根据IBM发表的论文给出的数据进行分析。以下的数据均是在IBM x3650 M4服务器测得,其主要的硬件参数是: (1)2颗英特尔xeon E5-2655 处理器,主频2.4-3.0 GHz。每颗处理器有8个核,因此总共有16个核。(2)256 GB RAM.在测试中是通过运算Linpack程序来获得计算能力数据的。结果如下图所示: 



图中从左往右分别是物理机、docker和虚拟机的计算能力数据。可见docker相对于物理机其计算能力几乎没有损耗,而虚拟机对比物理机则有着非常明显的损耗。虚拟机的计算能力损耗在50%左右。 为什么会有这么大的性能损耗呢?一方面是因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。比如对于本次实验的平台,实际的CPU架构是2块物理CPU,每块CPU拥有16个核,共32个核,采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥有32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化,大大减低了计算效率。

docker与虚拟机内存访问效率比较

内存访问效率的比较相对比较复杂一点,主要是内存访问有多种场景: (1)大批量的,连续地址块的内存数据读写。这种测试环境下得到的性能数据是内存带宽,性能瓶颈主要在内存芯片的性能上; (2)随机内存访问性能。这种测试环境下的性能数据主要与内存带宽、cache的命中率和虚拟地址与物理地址转换的效率等因素有关。以下将主要针对这两种内存访问场景进行分析。在分析之前我们先概要说明一下docker和虚拟机的内存访问模型差异。下图是docker与虚拟机内存访问模型: 



可见在应用程序内存访问上,虚拟机的应用程序要进行2次的虚拟内存到物理内存的映射,读写内存的代价比docker的应用程序高。下图是场景(1)的测试数据,即内存带宽数据。左图是程序运行在一块CPU(即8核)上的数据,右图是程序运行在2块CPU(即16核)上的数据。单位均为GB/s。 







从图中数据可以看出,在内存带宽性能上docker与虚拟机的性能差异并不大。这是因为在内存带宽测试中,读写的内存地址是连续的,大批量的,内核对这种操作会进行优化(数据预存取)。因此虚拟内存到物理内存的映射次数比较少,性能瓶颈主要在物理内存的读写速度上,因此这种情况docker和虚拟机的测试性能差别不大; 内存带宽测试中docker与虚拟机内存访问性能差异不大的原因是由于内存带宽测试中需要进行虚拟地址到物理地址的映射次数比较少。根据这个假设,我们推测,当进行随机内存访问测试时这两者的性能差距将会变大,因为随机内存访问测试中需要进行虚拟内存地址到物理内存地址的映射次数将会变多。结果如下图所示:







1图是程序运行在一个CPU上的数据,右图是程序运行在2块CPU上的数据。从左图可以看出,确实如我们所预测的,在随机内存访问性能上容器与虚拟机的性能差距变得比较明显,容器的内存访问性能明显比虚拟机优秀;但出乎我们意料的是在2块CPU上运行测试程序时容器与虚拟机的随机内存访问性能的差距却又变的不明显。针对这个现象,IBM的论文给出了一个合理解释。这是因为当有2块CPU同时对内存进行访问时,内存读写的控制将会变得比较复杂,因为两块CPU可能同时读写同一个地址的数据,需要对内存数据进行一些同步操作,从而导致内存读写性能的损耗。这种损耗即使对于物理机也是存在的,可以看出右图的内存访问性能数据是低于左图的。2块CPU对内存读写性能的损耗影响是非常大的,这个损耗占据的比例远大于虚拟机和docker由于内存访问模型的不同产生的差异,因此在右图中docker与虚拟机的随机内存访问性能上我们看不出明显差异。

docker与虚拟机启动时间及资源耗费比较

上面两个小节主要从运行在docker里的程序和运行在虚拟机里的程序进行性能比较。事实上,docker之所以如此受到开发者关注的另外一个重要原因是启动docker的系统代价比启动一台虚拟机的代价要低得多:无论从启动时间还是从启动资源耗费角度来说。docker直接利用宿主机的系统内核,避免了虚拟机启动时所需的系统引导时间和操作系统运行的资源消耗。利用docker能在几秒钟之内启动大量的容器,这是虚拟机无法办到的。快速启动、低系统资源消耗的优点使docker在弹性云平台和自动运维系统方面有着很好的应用前景。

docker的劣势

前面的内容主要论述docker相对于虚拟机的优势,但docker也不是完美的系统。相对于虚拟机,docker还存在着以下几个缺点:1.资源隔离方面不如虚拟机,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。2.安全性问题。docker目前并不能分辨具体执行指令的用户,只要一个用户拥有执行docker的权限,那么他就可以对docker的容器进行所有操作,不管该容器是否是由该用户创建。比如A和B都拥有执行docker的权限,由于docker的server端并不会具体判断docker cline是由哪个用户发起的,A可以删除B创建的容器,存在一定的安全风险。 3.docker目前还在版本的快速更新中,细节功能调整比较大。一些核心模块依赖于高版本内核,存在版本兼容问题

原文作者:chenbiaolong
 
 
分享原文地址:http://blog.csdn.net/cbl709/article/details/43955687 查看全部


概要


docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论述docker与传统虚拟化方式的不同之处,并比较物理机、docker容器、虚拟机三者的性能差异及差异产生的原理。 


docker与虚拟机实现原理比较


如下图分别是虚拟机与docker的实现框架。
dvk1.png
比较两图的差异,左图虚拟机的Guest OS层和Hypervisor层在docker中被Docker Engine层所替代。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整操作系统内核;虚拟机的Hypervisor层可以简单理解为一个硬件虚拟化平台,它在Host OS是以内核态的驱动存在的。
 
虚拟机实现资源隔离的方法是利用独立的OS,并利用Hypervisor虚拟化CPU、内存、IO设备等实现的。例如,为了虚拟CPU,Hypervisor会为每个虚拟的CPU创建一个数据结构,模拟CPU的全部寄存器的值,在适当的时候跟踪并修改这些值。需要指出的是在大多数情况下,虚拟机软件代码是直接跑在硬件上的,而不需要Hypervisor介入。只有在一些权限高的请求下,Guest OS需要运行内核态修改CPU的寄存器数据,Hypervisor会介入,修改并维护虚拟的CPU状态。 

Hypervisor虚拟化内存的方法是创建一个shadow page table。正常的情况下,一个page table可以用来实现从虚拟内存到物理内存的翻译。在虚拟化的情况下,由于所谓的物理内存仍然是虚拟的,因此shadow page table就要做到:虚拟内存->虚拟的物理内存->真正的物理内存。

对于IO设备虚拟化,当Hypervisor接到page fault,并发现实际上虚拟的物理内存地址对应的是一个I/O设备,Hypervisor就用软件模拟这个设备的工作情况,并返回。比如当CPU想要写磁盘时,Hypervisor就把相应的数据写到一个host OS的文件上,这个文件实际上就模拟了虚拟的磁盘。
对比虚拟机实现资源和环境隔离的方案,docker就显得简练很多。docker Engine可以简单看成对Linux的NameSpace、Cgroup、镜像管理文件系统操作的封装。docker并没有和虚拟机一样利用一个完全独立的Guest OS实现环境隔离,它利用的是目前Linux内核本身支持的容器方式实现资源和环境隔离。简单的说,docker利用namespace实现系统环境的隔离;利用Cgroup实现资源限制;利用镜像实现根目录环境的隔离。
通过docker和虚拟机实现原理的比较,我们大致可以得出一些结论:
(1)docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有优势,具体的效率对比在下几个小节里给出。在IO设备虚拟化上,docker的镜像管理有多种方案,比如利用Aufs文件系统或者Device Mapper实现docker的文件管理,各种实现方案的效率略有不同。
(2)docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。我们知道,引导、加载操作系统内核是一个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个过程,因此新建一个docker容器只需要几秒钟。另外,现代操作系统是复杂的系统,在一台物理机上新增加一个操作系统的资源开销是比较大的,因此,docker对比虚拟机在资源消耗上也占有比较大的优势。事实上,在一台物理机上我们可以很容易建立成百上千的容器,而只能建立几个虚拟机。


docker与虚拟机计算效率比较


在上一节我们从原理的角度推测docker应当在CPU和内存的利用效率上比虚拟机高。在这一节我们将根据IBM发表的论文给出的数据进行分析。以下的数据均是在IBM x3650 M4服务器测得,其主要的硬件参数是: 
(1)2颗英特尔xeon E5-2655 处理器,主频2.4-3.0 GHz。每颗处理器有8个核,因此总共有16个核。
(2)256 GB RAM.
在测试中是通过运算Linpack程序来获得计算能力数据的。结果如下图所示: 
dvk2.png
图中从左往右分别是物理机、docker和虚拟机的计算能力数据。可见docker相对于物理机其计算能力几乎没有损耗,而虚拟机对比物理机则有着非常明显的损耗。虚拟机的计算能力损耗在50%左右。 
为什么会有这么大的性能损耗呢?一方面是因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。
比如对于本次实验的平台,实际的CPU架构是2块物理CPU,每块CPU拥有16个核,共32个核,采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥有32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化,大大减低了计算效率。


docker与虚拟机内存访问效率比较


内存访问效率的比较相对比较复杂一点,主要是内存访问有多种场景: 
(1)大批量的,连续地址块的内存数据读写。这种测试环境下得到的性能数据是内存带宽,性能瓶颈主要在内存芯片的性能上; 
(2)随机内存访问性能。这种测试环境下的性能数据主要与内存带宽、cache的命中率和虚拟地址与物理地址转换的效率等因素有关。
以下将主要针对这两种内存访问场景进行分析。在分析之前我们先概要说明一下docker和虚拟机的内存访问模型差异。下图是docker与虚拟机内存访问模型: 
dvk3.png
可见在应用程序内存访问上,虚拟机的应用程序要进行2次的虚拟内存到物理内存的映射,读写内存的代价比docker的应用程序高。
下图是场景(1)的测试数据,即内存带宽数据。左图是程序运行在一块CPU(即8核)上的数据,右图是程序运行在2块CPU(即16核)上的数据。单位均为GB/s。 
dvk4.png

dvk5.png
从图中数据可以看出,在内存带宽性能上docker与虚拟机的性能差异并不大。这是因为在内存带宽测试中,读写的内存地址是连续的,大批量的,内核对这种操作会进行优化(数据预存取)。因此虚拟内存到物理内存的映射次数比较少,性能瓶颈主要在物理内存的读写速度上,因此这种情况docker和虚拟机的测试性能差别不大; 
内存带宽测试中docker与虚拟机内存访问性能差异不大的原因是由于内存带宽测试中需要进行虚拟地址到物理地址的映射次数比较少。根据这个假设,我们推测,当进行随机内存访问测试时这两者的性能差距将会变大,因为随机内存访问测试中需要进行虚拟内存地址到物理内存地址的映射次数将会变多。
结果如下图所示:
dvk6.png

dvk7.png
1图是程序运行在一个CPU上的数据,右图是程序运行在2块CPU上的数据。从左图可以看出,确实如我们所预测的,在随机内存访问性能上容器与虚拟机的性能差距变得比较明显,容器的内存访问性能明显比虚拟机优秀;但出乎我们意料的是在2块CPU上运行测试程序时容器与虚拟机的随机内存访问性能的差距却又变的不明显。
针对这个现象,IBM的论文给出了一个合理解释。这是因为当有2块CPU同时对内存进行访问时,内存读写的控制将会变得比较复杂,因为两块CPU可能同时读写同一个地址的数据,需要对内存数据进行一些同步操作,从而导致内存读写性能的损耗。这种损耗即使对于物理机也是存在的,可以看出右图的内存访问性能数据是低于左图的。2块CPU对内存读写性能的损耗影响是非常大的,这个损耗占据的比例远大于虚拟机和docker由于内存访问模型的不同产生的差异,因此在右图中docker与虚拟机的随机内存访问性能上我们看不出明显差异。


docker与虚拟机启动时间及资源耗费比较


上面两个小节主要从运行在docker里的程序和运行在虚拟机里的程序进行性能比较。
事实上,docker之所以如此受到开发者关注的另外一个重要原因是启动docker的系统代价比启动一台虚拟机的代价要低得多:无论从启动时间还是从启动资源耗费角度来说。docker直接利用宿主机的系统内核,避免了虚拟机启动时所需的系统引导时间和操作系统运行的资源消耗。利用docker能在几秒钟之内启动大量的容器,这是虚拟机无法办到的。快速启动、低系统资源消耗的优点使docker在弹性云平台和自动运维系统方面有着很好的应用前景。


docker的劣势


前面的内容主要论述docker相对于虚拟机的优势,但docker也不是完美的系统。相对于虚拟机,docker还存在着以下几个缺点:
1.资源隔离方面不如虚拟机,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。
2.安全性问题。docker目前并不能分辨具体执行指令的用户,只要一个用户拥有执行docker的权限,那么他就可以对docker的容器进行所有操作,不管该容器是否是由该用户创建。比如A和B都拥有执行docker的权限,由于docker的server端并不会具体判断docker cline是由哪个用户发起的,A可以删除B创建的容器,存在一定的安全风险。 
3.docker目前还在版本的快速更新中,细节功能调整比较大。一些核心模块依赖于高版本内核,存在版本兼容问题


原文作者:chenbiaolong
 
 
分享原文地址:http://blog.csdn.net/cbl709/article/details/43955687


运维人,你应该了解的三张武功心法图

互联网资讯采菊篱下 发表了文章 • 0 个评论 • 3425 次浏览 • 2015-10-11 15:04 • 来自相关话题

一、运维技能图

做为一个运维工程师,你知道你应该学习什么?怎么学习吗?朝哪个方向发展吗?下面一张运维工程师技能图,让你了解!





二、自动化运维路线图

运维自动化在国内已经声名远躁了,随着互联网快速的发展,运维不单单是几个脚本,几个文档可以胜任的!DevOps在国内很受热捧,但是真正的自动化之路,你走到了哪?你知道该怎么走吗?下面的武功心法图告诉你该怎么走!





三、云计算知识大宝典

从2013年开始,我国云计算持续快速发展,产业规模不断扩大,产业链日趋完善,产业环境不断优化。在这种情况下,不少创业者看到了市场,不少云计算公司崛起。但是人才在哪里,哪些是真正的云计算人才?云计算人才他应该会什么,下面Cloud computing image告诉你




 上图不清晰,扩大可清晰看到!
天下武功唯快不攻,这句话运用到互联网,就是你最快、最好、最早的掌握了互联网的最新技术,你就是比较吃香的人才!就像最新比较人们的容器Docker技术一样,如果你是先行者,你现在至少是一家Docker生态技术创业服务的合伙人!革命还未胜利,同志还需努力,各位苦逼的互联网工作者,加油! 查看全部


一、运维技能图


做为一个运维工程师,你知道你应该学习什么?怎么学习吗?朝哪个方向发展吗?下面一张运维工程师技能图,让你了解!
运维技能图.png


二、自动化运维路线图


运维自动化在国内已经声名远躁了,随着互联网快速的发展,运维不单单是几个脚本,几个文档可以胜任的!DevOps在国内很受热捧,但是真正的自动化之路,你走到了哪?你知道该怎么走吗?下面的武功心法图告诉你该怎么走!
自动化运维路线图.png


三、云计算知识大宝典


从2013年开始,我国云计算持续快速发展,产业规模不断扩大,产业链日趋完善,产业环境不断优化。在这种情况下,不少创业者看到了市场,不少云计算公司崛起。但是人才在哪里,哪些是真正的云计算人才?云计算人才他应该会什么,下面Cloud computing image告诉你
云计算知识图.png

 上图不清晰,扩大可清晰看到!
天下武功唯快不攻,这句话运用到互联网,就是你最快、最好、最早的掌握了互联网的最新技术,你就是比较吃香的人才!就像最新比较人们的容器Docker技术一样,如果你是先行者,你现在至少是一家Docker生态技术创业服务的合伙人!革命还未胜利,同志还需努力,各位苦逼的互联网工作者,加油!

云个球,其实就是远程桌面而已

互联网资讯采菊篱下 发表了文章 • 0 个评论 • 1178 次浏览 • 2015-10-09 23:47 • 来自相关话题

运维杂谈、扯淡!微信群的一次技术杂谈分享

菜鸟A

群里有对云办公感兴趣的吗?

菜鸟B

云办公 什么概念?什么形态?

菜鸟C

云办公 什么概念? 对啊!

菜鸟A

不知道就算了!

菜鸟D

云个球,其实就是远程桌面而已!

菜鸟B

不知道 你普及一下吗?真是的!

菜鸟C

真是的!

菜鸟B

@菜鸟D 别这么打击人家

菜鸟C

你不普及、介绍一下怎么让别人了解、感兴趣呢?

菜鸟D

今天某云给我发邮件让我续费,我在想这个时候我要是有自己的笔记本不就完啦[呲牙][呲牙]

菜鸟C

@菜鸟D 把人家姑娘吓到了, 云个球,其实就是远程桌面而已!

菜鸟B

这话太堵人了!

菜鸟C

这话多堵人啊! @菜鸟D 赶紧发红包!

菜鸟D

所谓的云其实就是一种高可用的计算方式罢了,云桌面对性能的消耗是巨大的,这种搞法不如用固态硬盘的本地系统,我个人的观点还是首先需要建立起强大的本地化系统。

菜鸟B

那就是说底层很主要呗?

菜鸟D

云桌面给你配个386的主机你用不?

菜鸟B

386是what?

菜鸟C

@菜鸟D 说的云里雾里 3850?

菜鸟D

386就是i7的爷爷的的爷爷的那一代cpu

菜鸟B

我去 那用毛线啊!估计给我爷爷 他打个斗地主 也嫌弃!

菜鸟D

所以吗,没有整体系统性能的提升那云个球呀,我就反感商业公司这种扯淡的大忽悠!

菜鸟B

嘿嘿 没事 在这个群 使劲吐槽!

菜鸟D

本地化系统本身的功能进化才是最重要的!

菜鸟C

@菜鸟D 有道理!

菜鸟B

本身性能解决,确实是用户体验最佳的表现!

菜鸟D

当年的很多所谓的购买云计算资源是因为小鸡已经无法满足自己的生产需要,现在技术进化这么快,自建数据中心已经基本没有什么技术壁垒啦,还要云就是傻x [偷笑][偷笑][偷笑]

菜鸟C

产品不谈性能和用户体验就是耍流氓!

菜鸟B

@菜鸟D 这个可能会成为以后的趋势,自经营基础设施,有能力的公司可能都会自建机房数据中心! 因为钱放自己身上是最好的!

菜鸟D

很早就有篇译文分析了自建数据中心和购买云的性价比,结论就是购买和自建基本少不了多少银子,从长远来看自建带来的投资回报率更高些,现在自建数据中心的资源企业回收之后就可以部署其他新应用,基础资源投入后也就剩下掏电费啦,所以云是一种新的计算模式,是建立在数据中心架构上的高可用工程化计算资源部署。

菜鸟B

@菜鸟D 这个我赞同,长远来看自建比较好。但是国内企业现在局面基本以创业公司和小型企业居多和活跃!所以云现在有存在的市场和价值!

菜鸟D

我个人觉得传统大it公司一旦觉悟,钱还是他们稳賺,现在云计算还处在成长期,但自建数据中心模式肯定是未来企业的产品市场!

菜鸟C

@菜鸟D 有远见!

菜鸟B

自建数据中心模式肯定是未来企业的产品市场 @菜鸟D 那你可以考虑向这个方向创业啊!那以后你就挣大发了,王健林卖房子,以后你就做数据中心服务一体化构建!

菜鸟D

人家cisco,h3c,华为,VMware,redhat都没闲着!

菜鸟B

都自建吗?

菜鸟D

自建需要硬件吧,需要方案吧,需要规划吧[偷笑][偷笑]

菜鸟B

这是肯定的需要,然后呢?

菜鸟D

那不就完了吗,需要你总的投资吧,建起来啦就该自己管理运维啦!

菜鸟B

那你赶紧建一个去!

菜鸟D

人家卖的是整体解决方案!

菜鸟B

以后互联网格局相对比较稳定了,那是不是自建大的数据中心?那这些大公司又又得挣了?

菜鸟D

小规模也可以呀,人家2000多人的单位搞7台服务器做个小数据中心,服务器都在上边跑,这才是真正的省资源!

菜鸟B

那这么说,以后卖机房自建数据中心创建方案、实施、硬件一条龙服务的厂商比较吃香?

菜鸟D

其实力哥讲的那个kvm现在就可以干这些事,只不过没有VMware 那种自动漂移和健康状态监控

菜鸟B

自动漂移和健康状态监控 可以二次开发 支持吗?

菜鸟D

我们已经进行中啦,单位的事我不馋和[呲牙][呲牙]

菜鸟B

那你做什么?

菜鸟D

其实给小微企业做那种5台基础然后可以横向扩展的数据中心挺有前途的,个人觉得!

菜鸟B

有点意思!

菜鸟D

@菜鸟B 我参与方案制订和技术讨论

菜鸟B

@菜鸟D 原来你属于智慧阶级 非民工阶级

菜鸟D

现在很多企业,事业单位都还是单服务器呐,真要让数据中心模式成为一种方式,那很多都需要升级的!

菜鸟B

你所说的升级 指的是 硬件方面的配置吗?

菜鸟D

从传统的机房升级到数据中心计算模式
我对数据中心计算模式的理解:数据中心就是工程化的计算资源池,传统硬件在这里就是细胞资源[呲牙][呲牙]

菜鸟B

颗粒化?

菜鸟C

@菜鸟D 你可以写书了!

菜鸟D

思想碎片而已,写书又不挣钱,能和大家闲扯淡就很好啦!

菜鸟B

好一个思想碎片化 写书确实不挣钱,就是挣个名声!

菜鸟D

未来这些细胞资源肯定需要用linux来首先变成具有强大本地化功能的系统
其实我一直觉得蚁穴结构很有意思,数据中心就是蚁穴,然后是各种蚁巢(硬件设施),再然后就是蚂蚁(容器化的微服务)[呲牙][呲牙][呲牙]

菜鸟B

好形象的比喻,高!好了菜鸟扯淡杂谈就这样结束了。
此次杂谈菜鸟主角------>菜鸟D(解宝琦)  配角------>菜鸟B(采菊篱下)   友情出演菜鸟C(邓荣兴),群众演员菜鸟A! 查看全部
运维杂谈、扯淡!微信群的一次技术杂谈分享


菜鸟A


群里有对云办公感兴趣的吗?


菜鸟B


云办公 什么概念?什么形态?


菜鸟C


云办公 什么概念? 对啊!


菜鸟A


不知道就算了!


菜鸟D


云个球,其实就是远程桌面而已!


菜鸟B


不知道 你普及一下吗?真是的!


菜鸟C


真是的!


菜鸟B


@菜鸟D 别这么打击人家


菜鸟C


你不普及、介绍一下怎么让别人了解、感兴趣呢?


菜鸟D


今天某云给我发邮件让我续费,我在想这个时候我要是有自己的笔记本不就完啦[呲牙][呲牙]


菜鸟C


@菜鸟D 把人家姑娘吓到了, 云个球,其实就是远程桌面而已!


菜鸟B


这话太堵人了!


菜鸟C


这话多堵人啊! @菜鸟D 赶紧发红包!


菜鸟D


所谓的云其实就是一种高可用的计算方式罢了,云桌面对性能的消耗是巨大的,这种搞法不如用固态硬盘的本地系统,我个人的观点还是首先需要建立起强大的本地化系统。


菜鸟B


那就是说底层很主要呗?


菜鸟D


云桌面给你配个386的主机你用不?


菜鸟B


386是what?


菜鸟C


@菜鸟D 说的云里雾里 3850?


菜鸟D


386就是i7的爷爷的的爷爷的那一代cpu


菜鸟B


我去  那用毛线啊!估计给我爷爷 他打个斗地主 也嫌弃!


菜鸟D


所以吗,没有整体系统性能的提升那云个球呀,我就反感商业公司这种扯淡的大忽悠!


菜鸟B


嘿嘿 没事 在这个群 使劲吐槽!


菜鸟D


本地化系统本身的功能进化才是最重要的!


菜鸟C


@菜鸟D  有道理!


菜鸟B


本身性能解决,确实是用户体验最佳的表现!


菜鸟D


当年的很多所谓的购买云计算资源是因为小鸡已经无法满足自己的生产需要,现在技术进化这么快,自建数据中心已经基本没有什么技术壁垒啦,还要云就是傻x [偷笑][偷笑][偷笑]


菜鸟C


产品不谈性能和用户体验就是耍流氓!


菜鸟B


@菜鸟D 这个可能会成为以后的趋势,自经营基础设施,有能力的公司可能都会自建机房数据中心! 因为钱放自己身上是最好的!


菜鸟D


很早就有篇译文分析了自建数据中心和购买云的性价比,结论就是购买和自建基本少不了多少银子,从长远来看自建带来的投资回报率更高些,现在自建数据中心的资源企业回收之后就可以部署其他新应用,基础资源投入后也就剩下掏电费啦,所以云是一种新的计算模式,是建立在数据中心架构上的高可用工程化计算资源部署。


菜鸟B


@菜鸟D 这个我赞同,长远来看自建比较好。但是国内企业现在局面基本以创业公司和小型企业居多和活跃!所以云现在有存在的市场和价值!


菜鸟D


我个人觉得传统大it公司一旦觉悟,钱还是他们稳賺,现在云计算还处在成长期,但自建数据中心模式肯定是未来企业的产品市场!


菜鸟C


@菜鸟D 有远见!


菜鸟B


自建数据中心模式肯定是未来企业的产品市场  @菜鸟D 那你可以考虑向这个方向创业啊!那以后你就挣大发了,王健林卖房子,以后你就做数据中心服务一体化构建!


菜鸟D


人家cisco,h3c,华为,VMware,redhat都没闲着!


菜鸟B


都自建吗?


菜鸟D


自建需要硬件吧,需要方案吧,需要规划吧[偷笑][偷笑]


菜鸟B


这是肯定的需要,然后呢?


菜鸟D


那不就完了吗,需要你总的投资吧,建起来啦就该自己管理运维啦!


菜鸟B


那你赶紧建一个去!


菜鸟D


人家卖的是整体解决方案!


菜鸟B


以后互联网格局相对比较稳定了,那是不是自建大的数据中心?那这些大公司又又得挣了?


菜鸟D


小规模也可以呀,人家2000多人的单位搞7台服务器做个小数据中心,服务器都在上边跑,这才是真正的省资源!


菜鸟B


那这么说,以后卖机房自建数据中心创建方案、实施、硬件一条龙服务的厂商比较吃香?


菜鸟D


其实力哥讲的那个kvm现在就可以干这些事,只不过没有VMware 那种自动漂移和健康状态监控


菜鸟B


自动漂移和健康状态监控 可以二次开发 支持吗?


菜鸟D


我们已经进行中啦,单位的事我不馋和[呲牙][呲牙]


菜鸟B


那你做什么?


菜鸟D


其实给小微企业做那种5台基础然后可以横向扩展的数据中心挺有前途的,个人觉得!


菜鸟B


有点意思!


菜鸟D


@菜鸟B  我参与方案制订和技术讨论


菜鸟B


@菜鸟D  原来你属于智慧阶级  非民工阶级


菜鸟D


现在很多企业,事业单位都还是单服务器呐,真要让数据中心模式成为一种方式,那很多都需要升级的!


菜鸟B


你所说的升级 指的是 硬件方面的配置吗?


菜鸟D


从传统的机房升级到数据中心计算模式
我对数据中心计算模式的理解:数据中心就是工程化的计算资源池,传统硬件在这里就是细胞资源[呲牙][呲牙]


菜鸟B


颗粒化?


菜鸟C


@菜鸟D 你可以写书了!


菜鸟D


思想碎片而已,写书又不挣钱,能和大家闲扯淡就很好啦!


菜鸟B


好一个思想碎片化 写书确实不挣钱,就是挣个名声!


菜鸟D


未来这些细胞资源肯定需要用linux来首先变成具有强大本地化功能的系统
其实我一直觉得蚁穴结构很有意思,数据中心就是蚁穴,然后是各种蚁巢(硬件设施),再然后就是蚂蚁(容器化的微服务)[呲牙][呲牙][呲牙]


菜鸟B


好形象的比喻,高!
好了菜鸟扯淡杂谈就这样结束了。
此次杂谈菜鸟主角------>菜鸟D(解宝琦)  配角------>菜鸟B(采菊篱下)   友情出演菜鸟C(邓荣兴),群众演员菜鸟A!

解决RedHat5.8无法利用yum安装软件问题

运维技术Ansible 发表了文章 • 0 个评论 • 1809 次浏览 • 2015-10-09 21:19 • 来自相关话题

好久都没有用红帽系统了,今天一位测试的同事,在RedHat5.8的环境需要测试,安装apache,但是报没有gcc,但是用yum安装gcc结果如下:

[root@localhost ~]# yum -y install gcc
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Setting up Install Process
No package gcc available.
Nothing to do报没有gcc软件包存在,她没有办法,只好叫我帮忙弄好了!
 
系统版本如下:[root@localhost ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m解决过程:

下载163安装源

[root@localhost~]# wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
--2015-10-09 14:33:10-- http://mirrors.163.com/.help/CentOS5-Base-163.repo
Resolving mirrors.163.com... 123.58.173.186,123.58.173.185
Connecting to mirrors.163.com|123.58.173.186|:80...connected.
HTTP request sent, awaiting response... 200 OK
Length: 2341 (2.3K) [application/octet-stream]
Saving to: `CentOS5-Base-163.repo'

100%2,341 --.-K/s in 0s

2015-10-09 14:33:22 (108 MB/s) -`CentOS5-Base-163.repo' saved [2341/2341][root@localhost~]# mv CentOS5-Base-163.repo /etc/yum.repos.d/

修改repo文件

*** 把$releasever替换成5
[root@localhost yum.repos.d]# sed -i 's#$releasever#5#g' ./CentOS5-Base-163.repo

清除原有缓存

[root@localhost yum.repos.d]# yum clean all
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Cleaning up Everything

获取yum列表

[root@localhost yum.repos.d]# yum makecache
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
addons | 1.9 kB 00:00
addons/filelists_db | 570 B 00:00
addons/other_db | 554 B 00:00
addons/primary_db | 1.1 kB 00:00
base | 1.1 kB 00:00
base/filelists | 3.7 MB 00:11
base/other | 14 MB 01:04
base/group | 1.1 MB 00:03
base/primary | 1.3 MB 00:06
epel | 3.6 kB 00:00
epel/filelists_db | 4.1 MB 00:16
epel/updateinfo | 510 kB 00:02
epel/other_db | 1.6 MB 00:05
epel/primary_db | 2.9 MB 00:14
extras | 2.1 kB 00:00
extras/filelists_db | 224 kB 00:00
extras/other_db | 442 kB 00:01
extras/group | 9.7 kB 00:00
extras/primary_db | 173 kB 00:00
updates | 1.9 kB 00:00
updates/filelists_db | 2.1 MB 00:09
updates/other_db | 11 MB 00:29
updates/primary_db | 531 kB 00:00
base 3667/3667
base 3667/3667
base 3667/3667
Metadata Cache Created

搜索安装




[root@localhost yum.repos.d]# yum -y install gcc 查看全部


好久都没有用红帽系统了,今天一位测试的同事,在RedHat5.8的环境需要测试,安装apache,但是报没有gcc,但是用yum安装gcc结果如下:


[root@localhost ~]# yum -y install gcc
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Setting up Install Process
No package gcc available.
Nothing to do
报没有gcc软件包存在,她没有办法,只好叫我帮忙弄好了!
 
系统版本如下:
[root@localhost ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m
解决过程:


下载163安装源


[root@localhost~]# wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
--2015-10-09 14:33:10-- http://mirrors.163.com/.help/CentOS5-Base-163.repo
Resolving mirrors.163.com... 123.58.173.186,123.58.173.185
Connecting to mirrors.163.com|123.58.173.186|:80...connected.
HTTP request sent, awaiting response... 200 OK
Length: 2341 (2.3K) [application/octet-stream]
Saving to: `CentOS5-Base-163.repo'

100%2,341 --.-K/s in 0s

2015-10-09 14:33:22 (108 MB/s) -`CentOS5-Base-163.repo' saved [2341/2341]
[root@localhost~]# mv CentOS5-Base-163.repo /etc/yum.repos.d/


修改repo文件


*** 把$releasever替换成5
[root@localhost yum.repos.d]# sed -i 's#$releasever#5#g' ./CentOS5-Base-163.repo


清除原有缓存


[root@localhost yum.repos.d]# yum clean all
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Cleaning up Everything


获取yum列表


[root@localhost yum.repos.d]# yum makecache
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
addons | 1.9 kB 00:00
addons/filelists_db | 570 B 00:00
addons/other_db | 554 B 00:00
addons/primary_db | 1.1 kB 00:00
base | 1.1 kB 00:00
base/filelists | 3.7 MB 00:11
base/other | 14 MB 01:04
base/group | 1.1 MB 00:03
base/primary | 1.3 MB 00:06
epel | 3.6 kB 00:00
epel/filelists_db | 4.1 MB 00:16
epel/updateinfo | 510 kB 00:02
epel/other_db | 1.6 MB 00:05
epel/primary_db | 2.9 MB 00:14
extras | 2.1 kB 00:00
extras/filelists_db | 224 kB 00:00
extras/other_db | 442 kB 00:01
extras/group | 9.7 kB 00:00
extras/primary_db | 173 kB 00:00
updates | 1.9 kB 00:00
updates/filelists_db | 2.1 MB 00:09
updates/other_db | 11 MB 00:29
updates/primary_db | 531 kB 00:00
base 3667/3667
base 3667/3667
base 3667/3667
Metadata Cache Created


搜索安装


gcc.png
[root@localhost yum.repos.d]# yum -y install gcc

苦逼运维

互联网资讯采菊篱下 发表了文章 • 0 个评论 • 1043 次浏览 • 2015-10-08 18:29 • 来自相关话题

今天在群里,一哥们发出了一个好湿,大家共爽!

横批

苦逼运维

上联

一个项目两部电脑三餐盒饭只为四千工资搞得五脏俱损六神无主仍然七点起床八点开会处理九个报警十分辛苦

下联

十年运维九年加班八面无光忙的七窍生烟到头六亲不认五体投地依旧四肢酸软三更加班只为二个臭钱一生孤独
总结:运维虽苦逼,领导需善待;如若无感悟,携程你榜样!
 
 运维杂谈、扯淡群 里面什么都可以说,畅所欲言,越激烈越好,各抒己见!思维发散 自由言论!自由表达!侃大山 生活需要扯淡 让生活解压!
有意加入者,扫码加入,加入不了,可以加微信号:crh_Love_ghl  注明拉取进杂谈群! 查看全部
今天在群里,一哥们发出了一个好湿,大家共爽!


横批


苦逼运维


上联


一个项目两部电脑三餐盒饭只为四千工资搞得五脏俱损六神无主仍然七点起床八点开会处理九个报警十分辛苦


下联


十年运维九年加班八面无光忙的七窍生烟到头六亲不认五体投地依旧四肢酸软三更加班只为二个臭钱一生孤独

总结:运维虽苦逼,领导需善待;如若无感悟,携程你榜样!
 
 运维杂谈、扯淡群 里面什么都可以说,畅所欲言,越激烈越好,各抒己见!思维发散 自由言论!自由表达!侃大山 生活需要扯淡 让生活解压!
有意加入者,扫码加入,加入不了,可以加微信号:crh_Love_ghl  注明拉取进杂谈群!
openskill.jpg