1、需求:

需要在多台主机上,发送文件、执行命令,进行快速部署

 

2、ansible 远程复制文件

例子:在当前节点(20.88.14.7) 上向其他指定的节点发送文件

(1)创建host---基于密码连接其他节点

vim  host



[ip_list]
20.88.14.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"
20.88.14.9 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"


 

 (2)创建测试文件



vim test_ansible.sh


 

(3)远程复制文件到各个节点



ansible ip_list -i ./host -m copy -a "src=./test_ansible.sh dest=/root/"


 

解释:



-i :指定hosts文件路径, 默认default=/etc/ansible/hosts

-m :要执行的模块,默认为command(这里使用的是copy模块,更多模块见 后文,4(3)ansible常用模块)

-a:指定模块的参数 (可增加权限参数:owner=root mode=777)


 

copy模块:



[root@node1 ~]# ansible-doc -s copy
- name: 将文件复制到被管理主机
action: copy
backup # 创建一个备份文件包括时间戳信息,如果以某种方式重创错了,还可以拿回原始文件
content # 取代src=,表示直接用此处指定的信息生成为目标文件内容;
dest= # 远程节点存放文件的路径,必须是绝对路径
directory_mode # 递归复制设置目录权限,默认为系统默认权限
force # 如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果设置为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
group # 复制到远程主机后,指定文件或目录的属
mode # 复制到远程主机后,指定文件或目录权限,类似与 'chmod' 指明如 0644
owner # 复制到远程主机后,指定文件或目录属主
src # 要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。
           在这种情况下,如果路径使用"/"来结尾,则只复制目录里的内容,如果没有使用"/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync。


 

(4)执行结果:

当前节点执行成功的结果:

Ansible快速实战指南----多机自动化执行命令、部署神器_复制文件

 

 其他节点:

Ansible快速实战指南----多机自动化执行命令、部署神器_vim_02

 

 

 3、ansible  远程执行命令,修改 test_ansible.sh 的名字为 test_ansible_new.sh

(1)创建host---基于密码连接其他节点

  同前

(2)远程执行命令,改名



ansible ip_list -i ./host -m command -a "mv /root/test_ansible.sh /root/test_ansible_new.sh"


解释:

command模块(命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。如果需要使用管道、变量,请使用raw模块,或者shell模块)



[root@node1 ~]# ansible-doc -s command

chdir # 在执行命令之前,先切换到该目录
creates # 一个文件名,当这个文件存在,则该命令不执行,可以用来做判断
executable # 切换shell来执行命令,需要使用命令的绝对路径
free_form= #要执行的Linux指令,一般使用Ansible的-a参数代替。
removes #一个文件名,这个文件不存在,则该命令不执行,与creates相反的判断


(3)执行结果

本节点(20.88.14.7):

Ansible快速实战指南----多机自动化执行命令、部署神器_绝对路径_03

其他节点:

Ansible快速实战指南----多机自动化执行命令、部署神器_绝对路径_04

 





​owner​​  [ˈəʊnə(r)]  ​​详细​​X




基本翻译


n. 所有人,物主



网络释义


​Owner:​​ 所有者


​beneficial owner:​​ 受益所有人


​co-owner:​​ 共同拥有人


 


Only action can relieve the uneasiness.