四、ansible介绍、ansible安装、ansible远程执行命令、ansible拷贝文件和目录
admin
2023-02-28 05:02:23
0

一、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.1
yw02

说明: 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/bash
echo `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 "

相关内容

热门资讯

终于了解“一言棋牌.辅助开挂神... 终于了解“一言棋牌.辅助开挂神器?”确实真的有挂您好,一言棋牌这个游戏其实有挂的,确实是有挂的,需要...
终于懂了“,728土豪版.可以... 您好:,728土豪版这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这...
重磅消息“大庆划水麻将.到底有... 重磅消息“大庆划水麻将.到底有挂吗?”其实是有挂您好,大庆划水麻将这个游戏其实有挂的,确实是有挂的,...
终于了解“十胡卡.开挂器?”其... 网上科普关于“十胡卡有没有挂”话题很是火热,小编也是针对十胡卡作*弊开挂的方法以及开挂对应的知识点,...
【第一资讯】“桃花庄.怎么装挂... 有 亲,根据资深记者爆料桃花庄是可以开挂的,确实有挂(咨询软件无需打开直...
今日重大通报“火神牛牛.怎么开... 网上科普关于“火神牛牛有没有挂”话题很是火热,小编也是针对火神牛牛作*弊开挂的方法以及开挂对应的知识...
【第一消息】“约战丹东麻将.可... 网上科普关于“约战丹东麻将有没有挂”话题很是火热,小编也是针对约战丹东麻将作*弊开挂的方法以及开挂对...
玩家攻略科普“新绍兴麻将.究竟... 您好:新绍兴麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
俞敏洪发声再谈董宇辉离职:比较... 据看看新闻报道,12月21日,俞敏洪在讲话中谈及董宇辉离职,俞敏洪仍亲切地喊他“孩子”,表示对目前结...
美重建加沙计划被批“幻灯片项目... 【环球时报特约记者 梁由之】据《以色列时报》20日报道,美国政府正推出一项名为“日出计划”的投资设想...