作者:邓聪聪

  查看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. 运维自动化之1 - ansible 批量主机管理

    2000 - 2016 年,维护的小型机.linux刚开始的2台增加到上千台,手工检查.日常版本升级需要管理太多设备,必须通过运维自动化实现 特别是版本升级,需要到同类机器部署代码.起停设备,必须在一 ...

  2. [转帖]Ansible批量远程管理Windows主机(部署与配置)

    2018-09-12 12:04:42 https://blog.51cto.com/7424593/2174156 一.测试环境介绍 Ansible管理主机: 系统:   CentOS6.8 IP ...

  3. Ansible批量远程管理Windows主机(部署与配置)

    一.测试环境介绍 Ansible管理主机: 系统:   CentOS6.8 IP Addr: 172.16.10.22 Linux管理服务器需安装pip.pywinrm插件 Windows客户端主机: ...

  4. Django + Ansible 主机管理(有源码)

    本文给大家介绍如何利用 Django + Ansible 进行 Web 项目管理.   Django介绍 一个可以使 Web 开发工作愉快并且高效的 Web 开发框架,能够以最小的代价构建和维护高质量 ...

  5. Ansible批量自动化管理工具

    一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansible ...

  6. Ansible批量自动化管理工具 roles标准化

    批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模 ...

  7. Ansible批量自动化管理工具(二)

    Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  8. (转)SSH批量分发管理&非交互式expect

    目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3. ...

  9. python 之路,Day27 - 主机管理+堡垒机系统开发

    python 之路,Day27 - 主机管理+堡垒机系统开发   本节内容 需求讨论 构架设计 表结构设计 程序开发 1.需求讨论 实现对用户的权限管理,能访问哪些机器,在被访问的机器上有哪些权限 实 ...

随机推荐

  1. vuex 状态管理 通俗理解

    解释:集中响应式数据管理,一处修改多处使用,主要应用于大中型项目. 安装: 第一:index.js:(注册store仓库) npm install vuex -D // 下载vuex import V ...

  2. Map the Debris 轨道周期

    返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: avgAlt}. 至于轨道周期怎么求, ...

  3. 安装Cnario提示.Net 3.5安装错误, 检查Windows系统更新提示无法检查到更新, 安装.Net 3.5提示"Windows无法完成请求的更改, 错误代码:0x800F081F"

    症状: Windows检查系统更新时提示无法完成, 尝试安装.Net 3.5等组件时都无法完成, 错误代码: 0x800F081F 原因: 可能时设置了禁止Windows自动更新, 需要重新打开 解决 ...

  4. codeforces 796A-D

    决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...

  5. Acdream1201 SuSu's Power

    题目:SuSu's Power 链接:http://acdream.info/problem?pid=1201 题意:一个人站在x轴原点上,初始方向向x轴正方向,由一个字符串来控制其运动,字符串由A. ...

  6. OpenCV4.1.0实践(1) - 环境配置及使用

    Pycharm下虚拟环境配置 1.下载whl文件 下载地址:python extension packages 搜索opencv,根据自己的版本下载,我用的python版本是3.5.2,64位: 2. ...

  7. webview 更新方法细节

    plus.webview.getWebviewById("user.home").evalJS("getHomeData()");//调用页面方法 plus.w ...

  8. Linux 下安装idea,提示svn版本太低问题

    在 RedHat 6.5 虚拟机上装了 Idea 2017, 将项目代码从 Windows 共享到虚拟机中,然后 Idea 提示 svn 版本太旧, 上网查资料说 Idea 2018 不支持1.7以下 ...

  9. DP的优化总结

    一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\l ...

  10. SQL学习指南第四篇

    SQL必知必会(第4版)学习笔记 插入数据 插入有几种方式: 插入完整的行 插入行的一部分 插入某些查询的结果(INSERT SELECT) 注意:省略列 如果表的定义允许,则可以在 INSERT 操 ...