ansible了解
基础知识:
- ansible简介
ansible 是个什么东西呢?基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。这个工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令 。当然,最主要的是它是基于 paramiko 开发的。这个paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。
- ansible特点
- 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可。
- 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。
- 使用python编写,维护更简单,ruby语法过于复杂。
- 支持sudo。
- ansible提供的框架
- 连接插件connection plugins:负责和被监控端实现通信。
- host inventory:指定操作的主机,是一个配置文件里面定义监控的主机。
- 各种模块核心模块、command模块、自定义模块。
- 借助于插件完成记录日志邮件等功能。
- playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
- 类似的自动化运维工具有很多常用的还有
- Puppet:基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱。
- SaltStack:基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL,使得配置脚本更简单。
ansible安装与使用
1、ssh的安装与配置
1)安装
相关命令:
- sudo apt-get install openssh-server
2)配置
相关命令:
- su -
- ssh localhost
- cd .ssh
- ssh-keygen //生成密钥
- ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@主机名

注意:可能会遇到如下问题

解决:
编辑sshd_config文件,我们输入:vim /etc/ssh/sshd_config
默认不允许root登录SSH,所以我们要进行相应设置,替换为如下:
- # Authentication:
- LoginGraceTime 120
- #PermitRootLogin without-password
- PermitRootLogin yes
- StrictModes yes
重启ssh服务,我们输入: /etc/init.d/ssh restart
2、Ansible的安装
centos6.8的相关命令:
# yum install http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install ansible
ubuntu的相关命令:
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
注意:只要在一个节点安装即可。
3、编辑hosts文件
相关命令与内容:
- vim /etc/ansible/hosts
- ------------------------------内 容------------------------------
- [web] //组名自定义
- slave1 //用相应主机名代替IP
- slave2
- ------------------------------内 容------------------------------
4、连通测试
1)查看web组中的主机
相关命令:
- ansible web --list-hosts

2)测试是否连通
相关命令:
- ansible web -m ping


5、常用操作
1)创建文件夹
参数说明:
- -u 指定运行的用户(默认为root)
- -s 使用sudo权限
相关命令:
- 用户和权限
- ansible spark_cluster -a "mkdir /usr/xx/xx" -s -u userName


2)复制
将本地文件/文件夹发送到远程主机,ansible的copy模块是围绕rsync的包装,所以它是增量而不是全量的拷贝。
参数说明:
- src 本地文件/文件夹位置
- dest 发送到远程主机的位置
- owner(可选) 所属用户
- group(可选) 所属用户组
- mode(可选) 权限
将本地文件/etc/ansible/ansible.cfg复制到远程服务器
相关命令:
- ansible web -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"

3)批量执行脚本
在远程批量执行本地脚本
在装有ansible的节点执行内容:
- vim hello.sh
- ------------------------------内 容------------------------------
- echo "hello world!!!"
- ------------------------------内 容------------------------------
- ansible spark_cluster -m script -a "hello.sh"

ansible了解的更多相关文章
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- 《Ansible权威指南》笔记(2)——Inventory配置
四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...
- useful Ansible commands
This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...
- 《Ansible权威指南》笔记(4)——Playbook
七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- 自动化运维工具ansible部署以及使用
测试环境master 192.168.16.74webserver1 192.168.16.70webserver2 192.168.16.72安装ansiblerpm -Uvh http://ftp ...
- Ansible Ubuntu 安装部署
一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...
- Ansible 模块命令介绍
copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...
- 用Vagrant和Ansible搭建持续交付平台
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
随机推荐
- poj1285 Combinations, Once Again(泛化背包)
题目传送门 Combinations, Once Again Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1897 A ...
- docker--container
[root@localhost docker_test]# docker run bigni/test3 #运行 docker so easy ! [root@localhost docker_tes ...
- 【转】Pandas速查手册中文版
本文翻译自文章:Pandas Cheat Sheet - Python for Data Science,同时添加了部分注解. 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重 ...
- 同事遇到了一个问题(在DllMain函数之前抢控制权)
同事有个需求,他的进程会加载一个DLL,他需要在那个DLL的DllMain函数执行之前控制DLL,修改DLL的内存. 以上工作要求全部在应用层执行. 这个其实有点悲剧. 因为这个需求其实有点坑,因为需 ...
- BUUCTF weirdlist 一路到底
Weird list 这题恶心的一批 给了一堆列表 这...这是人做的题吗... 放飞自我,打开脑洞 把‘1’空出来,其他数字换为‘*’画出来 然后看到了flag,但是 这...这是什么flag,ag ...
- spring 事物(二)—— 编程式事物实现与扩展
简介 使用TransactionTemplate 不需要显式地开始事务,甚至不需要显式地提交事务.这些步骤都由模板完成.但出现异常时,应通过TransactionStatus 的setRollback ...
- win10下logstash导入csv
input { file { path => ["E:/222/*.csv"] start_position => "beginning" } } ...
- 2019牛客暑期多校训练营(第九场)A.The power of Fibonacci
题意:给出n和m,f(n)是斐波那契额数列的第n项,要求计算ans=f(1)^m+f(2)^m+....f(n)^m.即斐波那契额数列前n项的m次幂和. 解法:这题好像有两种解法:一种是循环节+CRT ...
- Goldengate 部署oracle10g在 rac asm环境,完整教程
前言 Goldengate再rac 环境部署,和单机部署区别还是有点大,主要存在环境上. 环境 oracle10g ,sid=rac 准备工作 1.在rac节点,配置监听动态注册,确保goldenga ...
- 如何在YouTube上下载视频
1,首先要有科学上网的工具 2,详细说明:https://en.savefrom.net/1-how-to-download-youtube-video/