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: 共同拥有人
相关文章推荐
- shell小白 想玩自动化部署,无密码ssh 登录远程服务器,执行scp命令传送war包 并重启tomcat。
- 自动化运维工具-Ansible实战指南
- CheungSSH比Ansible更优秀的Linux SSH批量管理服务器 执行命令上传下载自动化运维工具
- 自动化运维工具Ansible实战(一)简介和部署
- 自动化运维工具-Ansible实战指南
- 自动化运维工具Ansible实战(一)安装部署
- 自动化运维工具Ansible实战(一)安装部署
- 自动化运维工具Ansible实战安装部署
- 自动化运维工具Ansible实战(三)常用的配置和相关命令
- 自动化运维之Ansible的安装部署与命令模块
- shell小白 想玩自动化部署,无密码ssh 登录远程服务器,执行scp命令传送war包 并重启tomcat。
- 自动化代码部署、代码回滚、命令执行软件之capistrano
- 自动化运维工具Ansible实战(一)简介和部署
- Docker快速部署开源无agent的自动化运维平台spug
- Ansible自动化部署之Play book的使用
- ADO.NET 快速入门(二):执行命令
- ansible自动化管理服务常用模块及命令语法
- Mina - RoR快速的自动化部署工具
- 安装部署自动化运维之Ansible
- 🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(4)jenkins+pipeline构建自动化部署