Playbook 分发执行脚本
Playbook 是 Ansible 的核心组件,用于自动化配置管理和应用部署,通过编写 Playbook,我们可以实现对多台主机的批量操作,在本节中,我们将介绍如何使用 Ansible Playbook 来分发和执行 Shell 脚本。
准备工作
1、确保已经安装了 Ansible,如果没有安装,可以参考官方文档进行安装:http://docs.ansible.com/ansible/intro_installation.html
2、准备一个 Shell 脚本,我们创建一个名为 test.sh
的脚本文件,内容如下:
#!/bin/bash echo "Hello, World!"
3、为 test.sh
脚本添加可执行权限:
chmod +x test.sh
编写 Playbook
1、创建一个名为 deploy.yml
的 Playbook 文件,内容如下:
name: Deploy test.sh script to remote hosts hosts: all tasks: name: Copy test.sh script to remote host ansible.builtin.copy: src: test.sh dest: /tmp/test.sh mode: '0755' name: Execute test.sh script on remote host ansible.builtin.shell: /tmp/test.sh
2、解析 Playbook:
hosts: all
:指定目标主机为所有主机,如果需要指定特定的主机,可以使用 hosts: [group_name]
,group_name
是一个包含主机名或组名的列表。
tasks
:定义一系列任务,每个任务都是一个独立的操作,如复制文件、执行脚本等。
ansible.builtin.copy
:将本地文件复制到远程主机。src
参数指定本地文件路径,dest
参数指定远程主机上的路径,mode
参数指定文件权限。
ansible.builtin.shell
:在远程主机上执行指定的命令,这里我们执行刚刚复制到远程主机的 test.sh
脚本。
执行 Playbook
1、确保已经配置了 Ansible 的远程用户和密钥,可以参考官方文档进行配置:http://docs.ansible.com/ansible/intro_getting_started.html#managingusersandpermissionsonremotemachines
2、使用以下命令执行 Playbook:
ansibleplaybook i inventory.ini deploy.yml
inventory.ini
是一个包含目标主机信息的配置文件,格式如下:
[all] 192、168.1.100 ansible_user=root ansible_ssh_pass=your_password ansible_connection=ssh 192、168.1.101 ansible_user=root ansible_ssh_pass=your_password ansible_connection=ssh
3、如果一切正常,你将在远程主机上看到输出结果:Hello, World!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/678362.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复