2000 - 2016 年,维护的小型机、linux刚开始的2台增加到上千台,手工检查、日常版本升级需要管理太多设备,必须通过运维自动化实现

特别是版本升级,需要到同类机器部署代码、起停设备,必须在一台主控机上完成代码分发、远程服务起停、服务验证验证

2016年开始使用 pssh ,后改用 ansible ,ansible 配置如下

一、配置ssh免密码登录

#cd /root/.ssh

免交互生成密钥

#echo -e "\n" |ssh-keygen -t rsa -N ""

发送锁头给 web1机器

#ssh-copy-id -i /root/.ssh/id_rsa.pub root@web1 ,如下

[root@fox .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@web1
The authenticity of host 'web1 (192.168.80.131)' can't be established.
RSA key fingerprint is 9c:c0:e2:2b:6f:88:c8:b1:25:47:f6:4b:fa:8f:cd:00.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'web1,192.168.80.131' (RSA) to the list of known hosts.
root@web1's password:

[root@fox ~]# sed -i 's#fox#web01#g' /etc/sysconfig/network
[root@fox ~]# more /etc/sysconfig/network

注:如果机器不同,需要自动应答时,可采用 expect 软件实现 ,expect 用法查见

https://www.cnblogs.com/yangmingxianshen/p/7967040.html

二、安装ansible

1. Master端安装EPEL第三方yum源
# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
2.安装Ansible
# yum install ansible -y
出现 Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方法: 一句话:把/etc/yum.repos.d/epel.repo,文件第3行注释去掉,把第四行注释掉。
打开/etc/yum.repos.d/epel.repo,将
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
修改为
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
3。再清理源,重新安装
yum clean all
这一次安装成功
# yum install ansible -y

注:问题解决参考了https://www.cnblogs.com/dadong616/p/5062727.html

三、ansible 使用

1.远程命令模块   command: 执行远程主机SHELL命令 (这是在远程机器上执行命令)

# ansible webservers -m command -a "free -m"

2.script: 远程执行MASTER本地SHELL脚本.(类似scp+shell) 注意,这个脚本要放在 MASTER ,很实用的命令

#echo "hostname" > /tmp/test1.sh
#chmod 700 /tmp/test1.sh

# ansible web -m script -a "/tmp/test1.sh"

web1 | SUCCESS => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to web1 closed.\r\n",
"stderr_lines": [
"Shared connection to web1 closed."
],
"stdout": "web01\r\n",
"stdout_lines": [
"web01"
]
}

其他模块和用法,详见 https://www.cnblogs.com/cheyunhua/p/8151603.html

总结:

1.工具使用提高效率

2 脚本整理好,随时使用

3 用于日常版本升级,一键部署环境、快速定位诊断等场合

运维自动化之1 - ansible 批量主机管理的更多相关文章

  1. 运维自动化之salt笔记

    1:saltstack的基本介绍 2:salt的安装 1:服务端1:安装2:配置文件3:运行4:注意事项2:客户端1:安装2:配置文件3:运行4:注意事项 3:salt的使用: 1:基础知识1:tar ...

  2. Ansible 运维自动化 ( 配置管理工具 )

    背景 出差背景,要搞项目的自动化部署.因为只直接对接生产分发,机器又非常多,这样以往使用的bat只能作为应急方案了,还是得考虑使用专业化的工具来做这个事情! 当下有许多的运维自动化工具( 配置管理 ) ...

  3. 企业级自动化运维工具应用实战-ansible

    背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...

  4. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

  5. 运维自动化之ansible的安装与使用 转

    运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配 ...

  6. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  7. Ansible运维自动化

    Ansible运维自动化 一.Ansible-playbook的初步使用 playbook的使用,playbook可以把ansible的模块进行组合 ln -s /usr/local/python/b ...

  8. 运维自动化神器ansible之user模块

    运维自动化神器ansible之user模块 一.概述   user模块 可管理远程主机上的 用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作. 二.参数介绍   name: 用于指定操作 ...

  9. 运维自动化管理服务器 CheungSSH

    CheungSSH 是一款中国人自主研发的Linux运维自动化管理服务器软件,后端使用 Python 语言+Django 的 Web 框架,前端使用 Bootstrap+Javascript+jQue ...

随机推荐

  1. 虚拟机之kali2.0

    kali2.0下载地址: 链接: https://pan.baidu.com/s/1CiQJNfvUPFw3aJR103XSbg 提取码: 57wp

  2. offer_JZ25

    offer_JZ25 题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点.(注意,输 ...

  3. Redis学习笔记(六)——数据结构之Set

    一.介绍 Redis的Set是string类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis中集合是通过哈希表实现的,所以添加.删除.查找的复杂度都是O(1). 集合中 ...

  4. 在阿里云Ubuntu 14.04.5 LTS下安装nethogs0.8.5

    由于默认安装的nethogs不能使用,提示:Creating socket failed while establishing local IP - are you root? 搜索资料后检查当前版本 ...

  5. VisualCalendar-可视化日历的创建

    public class VisualCalendar { public static void main(String[]args){ System.out.println("请输入日期( ...

  6. 【Jmeter】第一个接口测试案例

    测试步骤如下: 1.测试计划 2.线程组 3.HTTP Cookie管理器 4.Http信息头管理 5.Http请求默认值 6.Sampler(HTTP请求) 7.断言 8.监听器(查看结果树.图形结 ...

  7. Docker(10)- docker create 命令详解

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 创建一个新的容器但不启动它 ...

  8. SQL数据库表结构的修改(sql2005)

    一 .ALTER TABLE命令 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. 二.添加列 语法 :ALTER TABLE table_name ADD column_name d ...

  9. leetcode75:search-a-2d-matrix

    题目描述 请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 例如: 对于下面的矩阵: [ [1, 3, ...

  10. Unity正交相机智能包围物体(组)方案

    Unity正交相机智能包围物体(组)方案 目录 Unity正交相机智能包围物体(组)方案 一.技术背景 二.相关概念 2.1 正交摄像机 2.2 正交相机的Size 2.3 相机的Aspect 2.4 ...