开发者社区> 技术小胖子> 正文

ansible

简介:
+关注继续查看

ansbile:

运维工作:系统安装(物理机,虚拟机)--》程序包安装,配置,服务启动 --》批量操作 --》程序发布 --》监控

OS provisioning;

物理机:PXE、cobbler

虚拟机:image templates

configration:

puppet(ruby)

saltstack(python)

chef

cfengine

Command and control:

fabric

预发布验证:

新版本的代码先发布到服务器(跟线上环境配置完全相同,只是未接入调度器)

程序发布:

不能影响用户体验;

系统不能停机;

不能导致系统故障或造成系统完全不可用;

灰度发布;

发布路径:

/webapp/tuangou-1.1

/web/app/tuangou

/webapp/tuangou-1.2

在调度器上关闭一批主机(maintanace)--> 关闭服务 --> 部署新版本的应用程序 -->启动服务 --> 调度器上启用这一批服务器

自动化灰度发布:脚本、发布平台;

运维工具的分类;

agent:puppet,func

agentless:ansible,fabric

ssh

ansible:

模块化,调用特定的模块,完成特定的任务;

基于python语言实现,由paramiko、PyYAML和Jinja2三个关键模块;

部署简单,agentless;

主从模式

支持自定义模块

支持playbook

幂等性;

配置文件;

/etc/ansible/ansbile.cfg

/etc/ansible/hosts

for i in 15 16 17; do ssh 172.16.6.$i 'date';done

查看某个命令的具体用法:

ansible-doc -s command

ansible 172.16.6.15 -m command -a 'ifconfig'

ansible all -m command -a 'ifconfig'

ansible all -a 'ping'

下载FTP文件;

ansible webservers -a 'wget -O /tmp/apr-1.4.6.tar.bz2  ftp://172.16.6.49:2121/mage-app/sources/httpd/apr-1.4.6.tar.bz2'

创建用户:

ansible webservers -m user -a 'name=hacluster state=present'

删除用户;

ansible webservers -m user -a 'name=hacluster state=absent'

常用模块:

command:直接运行命令

-a ‘COMMAND’

user:添加用户

-a ‘name= state=  system= ’

group:添加组

-a 'name= gid= state= system= '

cron:添加计划任务

-a 'name= minute= hour= day= month weekday= job= user= state= '

ansible all -m cron -a 'name="sync time from ntpserver" minute="*/10" job="/sbin/ntpdate 172.16.6.14 & > /dev/null"'

ansible all -m cron -a 'name="sync time from ntpserver" state=absent’

copy:文件复制

-a 'dest= src= mode= owner= group'

ansible all -m copy -a 'src=/etc/fstab dest=/tmp/fstab.tmp mode=600'

file:创建删除文件夹,创建链接

-a 'path= mode= owner= group= state=(link\directory\present\absent)'

创建文件,链接,删除链接

ansible all -m file -a 'path=/tmp/testdir state=directory'

ansible all -m file -a 'path=/tmp/testdir state=link src=/tmp/fstab.tmp force=yes'

ansible all -m file -a 'path=/tmp/testdir state=absent src=/tmp/fstab.tmp force=yes'

ping

ansible all -m ping

yum:yum安装包

-a 'name= state=present\latest\absent'

ansible webservers -m yum -a 'name=ftp state=latest'

service:服务启动停止 

-a 'name= state=started\stopped\restarted enabled=yes'

ansible webservers -m service -a 'name=httpd state=started enabled=yes'

shell:远程运行shell命令

-a 'command'

ansible webservers -m shell -a 'echo centos | passwd --stdin centos'

script:远程运行本地shell脚本

-a '/path/test.sh'

ansible webservers -m script -a '/tmp/cc.sh'

setup:获取信息

ansible webservers -m setup





     本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1978158,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
〖Docker指南⑦〗docker-compose快速入门
由Docker引领先锋,容器在过去的一年里得到了飞速发展。容器技术提供了组件化环境,帮助应用在云之间轻松迁移而无需显著的返工。当谈到构建云以及非云的应用时,容器的战斗口号是可移植性和简单性。
8 0
在Centos 7上配置Pouch 镜像方法
在Centos 7上配置Pouch 镜像方法
97 0
想知道大厂面试都问什么吗,附最强面试技巧!!(大数据开发岗)
想知道大厂面试都问什么吗,附最强面试技巧!!(大数据开发岗)
7 0
〖Docker指南⑥〗快速入门Docker的五种网络模式
Docker 使用Linux bridge 技术,当Docker server启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
7 0
10行Python代码能做出哪些有趣的事情?
Python 凭借语法的易学性,代码的简洁性以及类库的丰富性,赢得了众多开发者的喜爱。下面我们来看看,用不超过10行代码能实现些什么有趣的功能
15 0
使用 Python 实现一个简单的智能聊天机器人
使用 Python 实现一个简单的智能聊天机器人
11 0
Python自动化办公之 Excel 自动绘制图表
Python自动化办公之 Excel 自动绘制图表
6 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载