使用ansible实现轻量级的批量主机管理
作者:邓聪聪
查看ansible配置文件下的hosts的文件
[root@ansible-server scripts]# cat /etc/ansible/hosts
[test]
172.16.16.7
172.16.16.8
[root@ansible-server scripts]#
1.生成秘钥对
ssh-keygen -t dsa -f ~/.ssh/id_dsa -P '' -q #生产密钥对,免交互,并安静输出
这个命令会产生一个公钥(~/.ssh/id_dsa.pub)和密钥(~/.ssh/id_dsa),
-t dsa:表示使用密钥的加密类型,可以为'rsa'和'dsa'
-P '':表示不需要密码登录
-f ~/.ssh/id_dsa:表示密钥存放的路径为${USER}/.ssh/id_dsa
ssh-copy-id -i ~/.ssh/id_dsa.pub username@ip,hostname #如果你是单台机器的话,可以使用这种方式把公钥文件传递到对方主机
//被控主机下的文件信息
2.使用ansible-playbook来生成推送ymal文件,批量推送
这里使用到了authoried_keys模块,vi /opt/ssh_key.yaml
# Using alternate directory locations:
- hosts: test //可以是组也可以是全部
user: root //推送所使用的用户 tasks:
- name: ssh-copy
authorized_key:
user=root
key="{{ lookup('file', '/root/.ssh/id_dsa.pub') }}"
3.测试
[root@ansible-server scripts]# ansible all -m command -a date
172.16.16.8 | SUCCESS | rc= >>
Mon Mar :: EST
172.16.16.7 | SUCCESS | rc= >>
Mon Mar :: EST
[root@ansible-server scripts]#
4.1ansible的各项命令参数的使用
1.service #管理的服务必须存在在/etc/init.d/下有的服务脚本
name=service name #服务的名称
state=参数 #停止服务 服务状态信息为过去时 (stared/stoped/restarted/reloaded )
案例:ansible test -m service -a "name=crond state=restarted"
2.yum
name=name #指定安装的软件
state=installed #安装
案例:ansible test -m yum -a "name=vim state=installed "
3.copy #将/etc/hosts 文件 传输到各个服务器送,src=文件的源路径,dest=文件的目标路径
案例:ansible test -m copy -a "src=/etc/hosts dest=/tmp/"
4.script #脚本模块,在本地执行脚本时,将脚本中的内容传输到远程节点上运行
案例:ansible all -m script -a "/root/ansible-server/scripts/batch_free.sh"
4.2.剧本格式示例
剧本的检查 ansible-playbook --syntax-check name.ymal
剧本彩排 ansible-playbook -C name.ymal
# Using alternate directory locations:
- hosts: test //冒号后面跟参数必须有空格
user: root tasks: //冒号后面没有参数的时候可以省略掉空格
- name: ssh-copy //名称,可以跟多个剧本
authorized_key:
user=root
key="{{ lookup('file', '/root/.ssh/id_dsa.pub') }}"
使用Ansible的user模块批量修改远程客户机的用户密码
[root@ansible-server ~]# vi /opt/root_passwd.yaml
---
- hosts: test
gather_facts: false
tasks:
- name: change user passwd
user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }} update_password=always
with_items:
- { name: 'root', chpass: '' }
- { name: 'test', chpass: '' }
注意上面在yaml文件中修改了远程客户机的root用户密码, test用户密码.如果还想要修改其他用户密码, 则继续按照上面规则添加即可!
使用ansible实现轻量级的批量主机管理的更多相关文章
- 运维自动化之1 - ansible 批量主机管理
2000 - 2016 年,维护的小型机.linux刚开始的2台增加到上千台,手工检查.日常版本升级需要管理太多设备,必须通过运维自动化实现 特别是版本升级,需要到同类机器部署代码.起停设备,必须在一 ...
- [转帖]Ansible批量远程管理Windows主机(部署与配置)
2018-09-12 12:04:42 https://blog.51cto.com/7424593/2174156 一.测试环境介绍 Ansible管理主机: 系统: CentOS6.8 IP ...
- Ansible批量远程管理Windows主机(部署与配置)
一.测试环境介绍 Ansible管理主机: 系统: CentOS6.8 IP Addr: 172.16.10.22 Linux管理服务器需安装pip.pywinrm插件 Windows客户端主机: ...
- Django + Ansible 主机管理(有源码)
本文给大家介绍如何利用 Django + Ansible 进行 Web 项目管理. Django介绍 一个可以使 Web 开发工作愉快并且高效的 Web 开发框架,能够以最小的代价构建和维护高质量 ...
- Ansible批量自动化管理工具
一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansible ...
- Ansible批量自动化管理工具 roles标准化
批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模 ...
- Ansible批量自动化管理工具(二)
Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- (转)SSH批量分发管理&非交互式expect
目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3. ...
- python 之路,Day27 - 主机管理+堡垒机系统开发
python 之路,Day27 - 主机管理+堡垒机系统开发 本节内容 需求讨论 构架设计 表结构设计 程序开发 1.需求讨论 实现对用户的权限管理,能访问哪些机器,在被访问的机器上有哪些权限 实 ...
随机推荐
- Android Studio自定义注释模板
一.自定义新建文件时生成的注释 setting->Editor->File and Code Templates->Includes->File Header,在这里输入自定义 ...
- selenium webdriver 如何实现将浏览器滚动条移动到某个位置
说明: 在做selenium webdriver 在做UI 自动化时,有些页面时使用懒加载的形式显示页面图片,如果在不向下移动滚动条时,获取到的图片会是网站的默认图片和真实的图片不相符. 所以研究了 ...
- 使用C++进行WMI查询的简单封装
封装WMI查询的简单类CWMIUtil 头文件WMIUtil.h #pragma once #include <Wbemidl.h> class CWMIUtil { public: CW ...
- AI佳作解读系列(四)——数据增强篇
前言 在深度学习的应用过程中,数据的重要性不言而喻.继上篇介绍了数据合成(个人认为其在某种程度上可被看成一种数据增强方法)这个主题后,本篇聚焦于数据增强来介绍几篇杰作! (1)NanoNets : H ...
- 关于Oracle使用管理员账号登录失败的问题
我在本地建的Oracle数据库在调试自己写的存储过程的时候提示缺少 debug connect session 权限,一般情况下根据这个提示直接用管理员账号登录进去,执行 grant debug co ...
- cocos creator入门
前面的话 Cocos Creator 是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及快速开发游戏所需要的各种图形界面工具.Cocos Creator ...
- ISOMAP和MDS降维
转载自https://blog.csdn.net/victoriaw/article/details/78497316 核心:测地线距离(dijstra最短路径获得).MDS降维 Isomap(Iso ...
- flex布局实例demo全解
上篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法. 你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我只列出代码,详细的语法解释请查阅<Flex布局教程:语法篇> ...
- iPhone 系统刷机
1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手 ...
- Springboot文件上传与下载
一.创建简单的springboot-web项目 二.文件上传属性配置 #默认支持文件上传 spring.http.multipart.enabled =true spring.http.multipa ...