ansible 安装配置与使用

2015-10-20 杜世伟 ansible

ansible安装配置与简单使用
前言:

AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建。其Ansible平台是一个开源的配置及计算机管理平台。可实现多节点的软件部署,执行特定任务并进行配置管理。

Ansible 跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的界面来协调所有的IT自动化功能,因此 Ansible的系统更加易用,部署更快。受管理的节点无需安装额外的远程控制软件,由平台通过SSH(Secure SHell)对其进行管理,因此十分方便。其模块支持JSON等标准输出格式,可采用任何编程语言重写。

Ansible可以让用户避免编写脚本或代码来管理应用,同时还能搭建工作流实现IT任务的自动化执行。IT自动化可以降低技术门槛及对传统IT的依赖,从而加快项目的交付速度。

ansible有如下优点:       
1、轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可        
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行        
3、使用python编写的,维护更简单        
4、支持sudo

阅读全文>>

标签: linux shell python ansible

评论(0) 浏览(12809)

git 版本回退

2015-9-27 杜世伟 git

现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:

Git is a distributed version control system.
Git is free software distributed under the GPL.
然后尝试提交:

$ git add readme.txt
$ git commit -m "append GPL"
[master 3628164] append GPL
 1 file changed, 1 insertion(+), 1 deletion(-)
像这样,你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

现在,我们回顾一下readme.txt文件一共有几个版本被提交到Git仓库里了:

阅读全文>>

标签: linux git reset reflog log

评论(0) 浏览(11416)

linux sed 文件中每行的开头添加引号末尾处添加引号逗号

2015-9-7 杜世伟 sed

linux sed 文件中每行的开头添加引号末尾处添加引号逗号

#cat > input.txt <<EOF 

> 1
> 2
> 3
> 4
> 5
> 6
> EOF

修改后文件内容变成:
"1",
"2",
"3",
"4",
"5",
"6",

阅读全文>>

标签: linux sed

评论(0) 浏览(11231)

Shell 脚本加密的方法

2015-8-27 杜世伟 shell

Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束)。

shc 安装 

yum -y install shc 

参数介绍:
#shc -h
shc Version 3.9.6, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script

阅读全文>>

标签: linux yum install shc

评论(0) 浏览(16522)

python 执行命令的3种方法

2015-8-24 杜世伟 Python

目前我使用到的python中执行cmd的方式有三种:
1. 使用os.system("cmd")
特点是执行的时候程序会打出cmd在linux上执行的信息。
import os
os.system("ls")  

2. 使用Popen模块产生新的process
现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函数有一个缺陷,就是它是一个阻塞的方法。如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法,但是也不能获得执行的返回值了。
Popen原型是:

阅读全文>>

标签: linux python os subprocess commands

评论(0) 浏览(9851)

git 基础命令

2015-8-23 杜世伟 git

Git基础配置
git config --global user.name "robbin"   
git config --global user.email "fankai#gmail.com"
git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w"    # 设置Editor使用textmate
git config -1 #列举所有配置
用户的git配置文件~/.gitconfig

Git常用命令

查看、添加、提交、删除、找回,重置修改文件

阅读全文>>

标签: linux git push pull

评论(0) 浏览(8120)

Protobuf proto3 与 proto2 区别

2015-8-21 杜世伟 Linux

这是一篇学习笔记。在粗略的看了 Protobuf 的文档中关于 proto2 和 proto3 的说明后,记录下了几点 proto3 区别于 proto2 的地方。

总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。

1)在第一行非空白非注释行,必须写:

syntax = "proto3";

2)字段规则移除了 “required”,并把 “optional” 改名为 “singular”1;

在 proto2 中 required 也是不推荐使用的。proto3 直接从语法层面上移除了 required 规则。其实可以做的更彻底,把所有字段规则描述都撤销,原来的 repeated 改为在类型或字段名后加一对中括号。这样是不是更简洁?

阅读全文>>

标签: linux json protobuf

评论(0) 浏览(12817)

如何清空linux的DNS缓存

2015-7-21 杜世伟 Linux

如何清空linux的DNS缓存
一、Linux下清空DNS缓存

Linux下DNS缓存实现通常有两种方式:
一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存。
一种实现DNS缓存则是用Bind来架设Caching Name Server来实现。

如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果。用这个命令:
# service nscd restart
或是
#/etc/init.d/nscd restart

如果是清除BIND服务器上的CACHE,用这个命令:
# rndc flush

如果你的DNS服务器是用dnsmasq实现的,用下面这个命令:
$ sudo /etc/init.d/dnsmasq restart

阅读全文>>

标签: linux dns NSCD Bind

评论(0) 浏览(1987)

系统架构设计理论与原则、负载均衡及高可用系统设计速记速记

2015-7-10 杜世伟 Linux

一、系统架构设计理论与原则 
这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计。 

(一)、CAP理论 
1、什么是CAP 

著名的CAP理论是由Brewer提出的,所谓CAP,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。 

(1)、Consistency(一致性):更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据完全一致(All nodes see the same data at the same time)。 

这里的一致性,一定要和传统的RDBMS中的事务一致性区分开。 

在传统的RDBMS中,事务具有ACID4个属性,即原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durable)。 

ACID是关系型数据库的最基本原则,遵循ACID原则强调一致性,对成本要求很高,对性能影响很大。 

阅读全文>>

标签: linux 负载均衡 CAP 架构

评论(0) 浏览(11974)

linux中输入输出的标准文件描述符

2015-7-6 杜世伟 Linux

#!/bin/bash
#linux中输入输出的标准文件描述符。
#linux将对象当做文件来处理,并用标准文件描述符来表示每个文件对象。每一个文件描述符都可以标识一个会话中打开的文件。
#每个过程中最多可以有9个文件描述符,其中前三个被bash shell指定用于特殊用途

#文件描述符 缩写 描述
#0 STDIN 标准输入
#1 STDOUT 标准输出
#2 STDERR 标准错误
#对于一个终端来讲,标准输入STDIN就是键盘、标准输出STDOUT和标准错误STDERR就是屏幕
#我们可以通过重定向符(<,>)来改变输入、输出和错误。

阅读全文>>

标签: linux shell

评论(0) 浏览(16168)

Powered by emlog 沪ICP备2023034538号-1