zhangjianchao

第二十五节 ansible之文件的批量分发

标签(空格分隔): Linux实战教学笔记-陈思齐

---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处,作者信息和本声明。否则将追究法律责任。http://www.cnblogs.com/chensiqiqi/


 

 


第1章 介绍:

python语言是运维人员必会的语言!
ansible是一个基于Python开发的自动化运维工具
ansible的功能实现基于SSH远程连接服务
ansible可以实现批量系统配置,批量软件部署,批量文件拷贝,批量运行命令等功能

特点
1)不需要单独安装客户端,基于系统自带的sshd服务,sshd就相当于ansible的客户端
2)不需要服务端
3)需要依靠大量的模块实现批量管理
4)配置文件/etc/ansible/ansible.cfg

第2章 IP列表

服务器说明 外网IP 内网IP 主机名
apache web 10.0.0.7/24 172.16.1.7/24 web02
nginx web 10.0.0.8/24 172.16.1.8/24 web01
NFS存储服务器 10.0.0.31/24 172.16.1.31/24 nfs01
rsync备份服务器 10.0.0.41/24 172.16.1.41/24 backup
管理服务器 10.0.0.61/24 172.16.1.61/24 m01

第3章 必备准备

实现从管理机m01到其他机器的密钥认证关系:

3.1 sshpass非交互方式工具使用

请参考http://www.cnblogs.com/chensiqiqi/p/6550221.html《实战教学笔记第二十四节》

3.2 开始安装ansible

搭建企业yum仓库及定制rpm包是自动化运维关键内容,在实战教学笔记第三阶段在进行讲解。

3.2.1 管理端m01安装ansible

需要epel.repo源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum -y install ansible

3.2.2 所有被管理端需要安装:

yum -y install libselinux-python

3.2.3 ansible基础配置

ansible的配置文件:

[root@m01 ~]# tree /etc/ansible/
/etc/ansible/
├── ansible.cfg     #ansible配置文件
├── hosts           #被ansible管理的主机名单(分组)
└── roles           

1 directory, 2 files

编辑ansible的主机配置文件hosts,添加主机组chensiqi

[root@m01 ~]# cp /etc/ansible/hosts{,.bak}  #改前备份可是个好习惯
[root@m01 ~]# tail -6 /etc/ansible/hosts
[chensiqi]
172.16.1.31
172.16.1.41
172.16.1.61
172.16.1.7
172.16.1.8

如果设置了ssh密钥连接的话,hosts文件到这里就算配置完毕了。但是我们还没有设置,因此还需要对ansible的主机映射文件/etc/ansible/hosts继续加工

[root@m01 ~]# tail -6 /etc/ansible/hosts
[chensiqi]
172.16.1.31 ansible_ssh_user=root ansible_ssh_pass=登录密码
172.16.1.41 ansible_ssh_user=root ansible_ssh_pass=登录密码
172.16.1.61 ansible_ssh_user=root ansible_ssh_pass=登录密码
172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=登录密码
172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=登录密码

命令说明:
ansible_ssh_user:ssh连接的用户名
ansible_ssh_pass:ssh连接的密码

注意:
如果没有做密钥认证,hosts又没有如上方式配置的话,ansible进行远程连接是会失败的。

3.2.4 利用ansible远程批量执行命令

语法:

ansible chensiqi -m command -a \'uptime\'
ansible 主机组 -m ansible内置功能模块名 -a 命令

ansible命令测试

示例1:获取172.16.1.8的主机的w信息

[root@m01 ~]# ansible 172.16.1.8 -m command -a "w"
172.16.1.8 | SUCCESS | rc=0 >>
 13:44:07 up  5:32,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                Sat09   14:16   0.07s  0.07s -bash
root     pts/0    172.16.1.1       Mon23   13:29m  0.08s  0.00s -bash
root     pts/1    m01              13:44    0.00s  0.14s  0.00s /bin/sh -c /usr

[root@m01 ~]# 

示例2:获取整个chensiqi主机组的对应的“w”信息

[root@m01 ~]# ansible chensiqi -m command -a "w"
172.16.1.8 | SUCCESS | rc=0 >>
 13:45:12 up  5:33,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                Sat09   15:21   0.07s  0.07s -bash
root     pts/0    172.16.1.1       Mon23   13:30m  0.08s  0.00s -bash
root     pts/1    m01              13:45    0.00s  0.12s  0.00s /bin/sh -c /usr

172.16.1.61 | SUCCESS | rc=0 >>
 21:05:58 up  6:34,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                14:41    4:22m  0.07s  0.07s -bash
root     pts/0    172.16.1.1       16:44    2.00s  1.11s  0.67s /usr/bin/python
root     pts/8    m01              21:05    1.00s  0.10s  0.00s /bin/sh -c /usr

172.16.1.7 | SUCCESS | rc=0 >>
 12:05:07 up  1:05,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                11:00   26:21   0.09s  0.09s -bash
root     pts/0    m01              12:05    0.00s  0.30s  0.00s /bin/sh -c /usr

172.16.1.41 | SUCCESS | rc=0 >>
 22:36:51 up 18:39,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                03:58   58:54   0.11s  0.11s -bash
root     pts/0    m01              22:36    0.00s  0.32s  0.00s /bin/sh 

分类:

技术点:

相关文章:

  • 2022-01-19
  • 2021-12-19
  • 2021-06-15
  • 2021-09-10
  • 2022-01-19
  • 2022-01-12
  • 2021-12-19
猜你喜欢
  • 2021-08-07
  • 2021-12-09
  • 2021-05-25
  • 2021-11-16
相关资源
相似解决方案