千家信息网

四、ansible介绍、ansible安装、ansible远程执行命令、ansible拷贝文件和目录

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、ansible介绍不需要安装客户端,通过sshd去通信基于模块工作,模块可以由任何语言开发不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读。安装十分简单,cento
千家信息网最后更新 2026年11月01日四、ansible介绍、ansible安装、ansible远程执行命令、ansible拷贝文件和目录

一、ansible介绍

不需要安装客户端,通过sshd去通信

基于模块工作,模块可以由任何语言开发

不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读。

安装十分简单,centos上可直接yum安装

有提供UI(web界面)www.ansible.com/tower,收费的。

官方文档 http://docs.ansible.com/ansible/latest/index.html

ansible已经被redhat公司收购,它在github上是一个非常受欢迎的开源软件,github地址https://github.com/ansible/ansible

一本不错的入门电子书 https://ansible-book.gitbooks.io/ansible-first-book/


二、ansible安装

准备两台机器,前面我们做实验的两台机器fuxi01,yw02

只需要在fuxi01上安装ansible

# yum list |grep ansible 可以看到自带源里就有2.8版本的ansible# yum install -y ansible ansible-doc

fuxi01上生成密钥对 ssh-keygen -t rsa

[root@fuxi01 ~]# ls /root/.ssh/     看是否有id_rsa和id_rsa.pub,有就不用再生成,指定类型为rsa的类型。authorized_keys  id_rsa  id_rsa.pub  known_hosts

把公钥id_rsa.pub放到yw02和本机上,设置密钥认证

[root@yw02 ~]# vi .ssh/authorized_keys[root@fuxi01 ~]# vi .ssh/authorized_keys

回到第一台机器试试看能不能连接了

[root@fuxi01 ~]# ssh yw02[root@fuxi01 ~]# ssh 127.0.0.1

配置/etc/ansible/hosts,目的是为了配置主机组的。

管理机器可以分成多个组,每一组里都有若干个机器,后续就可以针对主机组进行操作。

//增加,可以写主机名,也可以写IP地址。主机名要想被识别,需要先在/etc/hosts中配置。

# vi /etc/ansible/hosts[testhost]127.0.0.1yw02

说明: testhost为主机组名字,自定义的。 下面两个ip为组内的机器IP。


三、ansible远程执行命令

# ansible  testhost -m command -a 'w'

这样就可以批量执行命令了。这里的testhost 为主机组名,-m指定模块(module),-a后面指定命令。也可以直接写一个ip,针对某一台机器来执行命令。

# ansible 127.0.0.1 -m  command -a 'hostname'# ansible yw02 -m  command -a 'hostname'

当出现此错误: "msg": "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"

解决方法: yum install -y libselinux-python

还有一个模块shell同样也可以实现

# ansible  testhost -m shell -a 'w'

模块:

command:执行命令

shell:执行脚本


四、ansible拷贝文件和目录

# ansible yw02 -m copy -a "src=/etc/ansible  dest=/tmp/ansible_test owner=root group=root mode=0755"

copy:拷贝模块,可以用来拷贝文件或目录。

src:指定来源文件或目录

dest:指定目标文件或目录

owner:指定目标的属主

group:指定目标的属组

mode:指定权限

注意:源目录会放到目标目录下面去,如果目标指定的目录不存在,它会自动创建。如果拷贝的是文件,dest指定的名字和源如果不同,并且它不是已经存在的目录,相当于拷贝过去后又重命名。但相反,如果desc是目标机器上已经存在的目录,则会直接把文件拷贝到该目录下面。

# ansible testhost -m copy -a "src=/etc/passwd dest=/tmp/123"

这里的/tmp/123和源机器上的/etc/passwd是一致的,但如果目标机器上已经有/tmp/123目录,则会在/tmp/123目录下面建立passwd文件。


五、ansible远程执行脚本

首先创建一个shell脚本

# vim  /tmp/1.sh  //加入内容#!/bin/bashecho `date` > /tmp/ansible_test.txt

然后把该脚本分发到各个机器上

# ansible testhost -m copy -a "src=/tmp/1.sh dest=/tmp/test.sh mode=0755"

最后是批量执行该shell脚本

# ansible testhost -m shell -a "/tmp/test.sh"

shell模块,还支持远程执行命令并且带管道。command模块是不支持的。

# ansible testhost -m shell -a "cat /etc/passwd|wc -l "
目录 机器 模块 命令 文件 目标 拷贝 脚本 主机 支持 配置 名字 地址 密钥 机组 类型 不同 不错 一致 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 互联网金融 科技 互联网科技革命 互联网科技的英文 狮子座互联网科技有限公司 撒么互联网科技公司 联恩商钥互联网科技有限公司 互联网科技股午盘股票涨跌 海南购全球互联网科技 承德科技产业互联网发展 宁夏众和广鑫互联网科技有限公司 阿大互联网科技有限公司 伊宁互联网科技做什么的 上海创道互联网络科技有限公司 互联网科技融合创新 广州有谷有贝互联网科技有限公司 2021世界互联网领先科技成果发布 互联网硬科技公司 中国互联网公司的科技投入 第三届互联网大会安防黑科技 友谊互联网络科技 互联网科技公司名称 华脉科技工业互联网产品 深圳前海聚择互联网科技有限公司 厦门比较好的科技互联网公司 河南猎农互联网科技有限公司 和信科技工业互联网 互联网科技和法律行业 互联网科技的全部知识 恒生科技互联网指数十大成分股
0