您的位置:首页 > 其它

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

2021-09-17 22:06 639 查看
                                 

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)

 

ad0 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)执行结果:

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

 

 其他节点:

 

 

 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):

其他节点:

 

4、参考:

(1)ansible的安装和连接

https://www.cnblogs.com/yanjieli/p/10969089.html

(2)ansible常用参数

https://www.cnblogs.com/tyk3201/p/12383081.html

 (3)ansible常用模块

https://www.cnblogs.com/ccorz/p/ansible-chang-yong-mo-kuai.html

 

owner  [ˈəʊnə(r)]  详细X 基本翻译 n. 所有人,物主 网络释义 Owner: 所有者 beneficial owner: 受益所有人 co-owner: 共同拥有人

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: