四、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 "

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...