首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ansible传递远程主机的输入在本地运行python脚本

使用Ansible传递远程主机的输入在本地运行Python脚本时,可以通过Ansible的参数和模块来实现。下面是一个示例的操作流程:

  1. 首先,确保在本地机器上已经安装了Ansible。如果没有安装,可以按照官方文档提供的指南进行安装:Ansible官方文档
  2. 创建一个Ansible playbook(剧本),用于定义任务和配置。可以使用任何文本编辑器创建一个名为run_python_script.yml的文件,并添加以下内容:
代码语言:txt
复制
- name: Run Python script on remote host
  hosts: remote_host
  vars_prompt:
    - name: script_input
      prompt: "Enter input for the Python script: "
  tasks:
    - name: Transfer Python script to remote host
      copy:
        src: /path/to/local/script.py
        dest: /path/to/remote/script.py
        mode: 0755
    
    - name: Run Python script on remote host
      command: python /path/to/remote/script.py "{{ script_input }}"

以上剧本定义了一个名为run_python_script.yml的play,它包含了两个任务:一个是将本地的Python脚本传输到远程主机,另一个是在远程主机上运行Python脚本并传递输入。

  1. 在剧本中的hosts字段指定了远程主机的名称或IP地址。可以在/etc/ansible/hosts文件中定义主机信息,或者直接在命令行中指定主机。
  2. 使用以下命令运行剧本:
代码语言:txt
复制
ansible-playbook run_python_script.yml

在运行过程中,Ansible会提示你输入Python脚本所需的输入。输入完毕后,Ansible将会将脚本和输入传输到远程主机,并在远程主机上执行脚本。

请注意,以上示例中的路径和文件名需要根据实际情况进行调整。此外,如果Python脚本依赖于其他模块或库,请确保远程主机上已经安装了所需的依赖。

希望以上内容能够满足您的需求,如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ansible 详细用法说明(二)

例:获取某台主机变量 ansible 10.1.6.68 -m setup ===================================== script:发送脚本到各被管理节点,并执行。...角色; 2.playbook基础组件: Hosts:运行指定任务目标主机; remote_user:远程主机以哪个用户身份执行; sudo_user:非管理员需要拥有sudo权限; tasks...vars: - var_name: value - var_name: value (4) Inventory还可以使用参数: 用于定义ansible远程连接目标主机使用属性...变量调用:有空格 {{ var_name }} 七、Templates:模板 文本文件,内部嵌套有模板语言脚本使用模板语言编写) Jinja2 是由python编写。...我们打算使用基于文本模板语言时,jinja2是很好解决方案。yeml是写playbook,jinja2是写配置文件模板 功用 将模板文件变量值转换成对应本地主机的确定值。

2.6K50

python学习-ansible简单使用

root 权限执行时使用 ( 连接用户不是 root 时 ) # -K          -s 时,-K 输入 root 密码 2.2 配置linux主机ssh无密码访问 为了避免Ansible下发指令时输入目标主机密码... Python 其他脚本语言,如 Ruby 、Perl 或其他类似 ansible_python_interpreter 解释器 [webservers]         # 主机名支持正则描述 www...command作为Ansible默认模块,可以运行远程权限范围内所有的shell命令;script功能是远程主机上执行主控端存储shell脚本文件,相当于scp+shell组合;shell功能是执行远程主机...4.4 get_url模块     实现在远程主机下载指定URL到本地,支持sha256sum文件校验 ansible webservers -m get_url -a  "url=http://www.baidu.com...远程主机查看计划任务 ?

72020
  • ansible批量管理软件部署及剧本

    | rc=0 >> nfs01 172.16.1.11 | SUCCESS | rc=0 >> backup 说明:shell模块远程执行脚本时,远程主机上一定要有相应脚本  script模块...本地执行脚本时,将脚本内容传输到远程节点上运行 creates (added in 1.5) 定义一个文件是否存在,如果不存在运行相应命令;如果存在跳过此步骤 - name: Run the...,脚本本身不用进行授权,即可利用script模块批量执行脚本 copy模块 将本地数据传输到远端,或者将远程节点上数据进行移动 选项参数 选项说明 backup (重要参数) 创建备份文件包含时间戳信息...,将到远程目标主机机器上搜索 validate 文件复制到相应目录位置之前,运行验证命令要验证文件路径通过%s传递,并且要在下面的例子中显示 实例: [root@m01 scripts]# ansible...,拉取到本地 参数 说明 dest 定义一个保存文件目录(将远程主机拉去过来文件保存在本地路径信息) src 指定从远程主机要拉取文件信息 flat 默认设置为no,如果设置为yes,将不显示路径信息

    2.9K70

    大神带你 20 分钟学会 Ansible

    uid=306 system=yes group=mysql' copy 复制文件(复制本地文件到远程主机指定位置) src 定义本地源文件路径 dest 定义远程目录文件路径...# ansible webserver -m service -a 'enabled=true name=httpd state=started' shell 远程主机运行命令 尤其是用到管道变量等功能复杂命令...# ansible all -m shell -a 'echo magedu | passwd --stdin user1' script 将本地脚本复制到远程主机运行之 # ansible..." 5.1.5 通过roles传递变量 当给一个主机应用角色时候可以传递变量,然后角色内使用这些变量,示例如下: - hosts: webserver roles: - common...: root 不过,remote_user也可用于各task中,也可以通过指定其通过sudo方式远程主机上执行任务,其可用于play全局或其任务;此外,甚至可以sudo时使用sudo_user指定

    3.5K20

    Ansible简介

    实现了批量系统配置, 批量程序部署, 批量运行命令等功能。 Ansible是基于模块工作, 本身没有批量部署能力。真正具有批量部署ansible运行模块, Ansible只是提供一种框架。...用户使用Ansible或Playbook,服务器中断输入AnsibleAd-Hoc命令集或Playbook; Ansible遵循预先编排规则将Playbooks逐条拆解为Play; Play组织成...Ansible可识别的任务(Task); Task会调用任务所涉及所有模块(Module)和插件(Plugin); 读取Inventroy中定义主机列表; 通过SSH认证(默认)将任务集以临时文件或命令形式传输到远程客户端执行并返回执行结果...三 特性 no agents: 不需要在被管控主机上安装任何客户端,只需SSH、Python即可,建议Python版本为2.6.6以上; no server: 无服务器端, 使用时直接运行命令即可; modules...四 优点 (1).轻量级, 无需客户端安装agent, 更新时只需操作机上进行一次更新即可; (2).批量任务执行可以写成脚本, 而且不用分发到远程就可以执行; (3).使用

    62631

    ansible-playbook实现自动部署KVM及安装python3详细教程

    (list) 纯量(scalars):单个、不可再分值 5、playbooks组成结构 Tasks:任务列表,指远程主机将要执行一系列动作,核心就是ansible模块....Variables:变量 Templates:包含模板语法文本文件 Handlers:处理器,有某个条件触发执行操作 remoute_user:远程主机上执行任务用户 Hosts:运行指定任务目标主机...: "{{user}}" ####这里是一个变量需要在运行playbook时指定 user值 vars: - python_workdir: /home/Python-3.7.4 ###定义执行主机上...to remote_host #从本地远程服务器拷贝python安装文件家 copy: src={{python_workdir}} dest=/home/ - name: create...workspace of python3 command: mkdir /usr/local/python3 #远程服务器上创建python运行文件夹 - name: change role

    1.3K40

    Ansible玩转Windows自动化

    本文主要就ansible windows使用环境搭建过程分享 ansible是基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,实现了批量系统配置...服务 Ansible管理机部署安装 目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible....,也不依赖于其他软件,不要求运行后台进程,也不需要设置数据库.因此我们社区许多用户一直使用Ansible开发版本,这样可以利用最新功能特性,也方便对项目做贡献.因为不需要安装任何东西,跟进Ansible...pip install paramiko PyYAML Jinja2 httplib2 six 一旦运行env-setup脚本,就意味着Ansible从源码中运行起来了.默认inventory文件是...path=F:\file\passwd state=absent" 返回结果: 192.168.1.105 | success >> { "changed": true} 至此,环境搭建完成,可以本地远程控制

    3.4K20

    玩转企业常见应用与服务系列(十四):自动化运维工具 Ansible 基础入门

    ,然后查看剧本任务,根据剧本中一系列任务生成一个临时脚本文件,然后将该脚本文件发送给所管理主机脚本文件远程主机上执行完成后返回结果,然后删除本地临时文件。...inventory #管理主机清单文件路径 library #ansible模块存放目录 remote_tmp #上述工作原理中提到脚本发送至对端临时目录 local_tmp #上述工作原理中提到本地生成脚本存放临时目录...: src #被复制到远程主机本地文件。..." }, "changed": false } unarchive 模块 将ansible主机压缩包在本地解压缩后传到远程主机上,或者将远程主机某个压缩包解压缩到指定路径下。...copy #默认为yes,拷贝文件从ansible主机复制到远程主机,no远程主机上寻找src源文件解压 src #tar源路径,可以是ansible主机路径,也可以是远程主机路径,如果是远程主机路径

    66411

    Saltstack使用说明

    支持API自定义模块,可通过Python扩展 运行模式 local:本地单点 Master/Minion:通过server/client方式进行管理,效率很高 Salt SSH:通过SSH方式进行管理...(类似于ansible),效率相对来说比较低 批量操作 master与minion之间通过Zero进行消息传递使用ZeroMQ进行消息传递,以及Zero-MQ发布订阅模式,连接方式包括tcp、ipc...要快 ansible与saltstack都需要和远程主机进行连接,所以最大问题就是MITM攻击(通过伪装成master主机远程主机进行通信,从而进行攻击) saltstack使用ZeroMQ进行数据传输...,ZeroMQ本身数据传输不支持加密,saltstack可以通过使用AES数据加密方法来对数据进行加密传输,但minion以守护进程方式运行远程主机,容易暴露 ansible使用标准SSH进行连接...,不需要在远程主机上启动守护进程,而且标准SSH数据传输就是加密传输,安全方面ansible要更胜一筹 ansible远程主机之间都是通过标准SSH进行连接远程主机只需要运行SSH进程就可以进行操作

    36530

    Ansible高级用法(运维开发篇)

    文件位置,资源清单就是一些Ansible需要连接管理主机列表 # inventory = /root/ansible/hosts 2. library # Ansible操作动作,无论是本地远程...Ansible1.2及之前版本,默认将会使用paramiko,本地OpenSSH必须通过-c ssh或者配置文件中设定....也许这是常识,但也值得分享:任何管理系统受益于被管理机器主控机附近运行.如果在云中运行,可以考虑使用云中一台机器来运行Ansible.....使用Ansible时,你可能不想遇到这样情况:如果有个主机没有“known_hosts”中被初始化将会导致交互使用Ansible或定时执行Ansible时对key信息的确认提示....# 主机主机inventory清单中指定,可以使用系统默认/etc/ansible/hosts, # 也可以自己编辑,在运行时候加上-i选项,指定清单位置即可。

    3.5K52

    Ansible 极简教程

    uid=306 system=yes group=mysql' copy 复制文件(复制本地文件到远程主机指定位置) src 定义本地源文件路径 dest 定义远程目录文件路径...# ansible webserver -m service -a 'enabled=true name=httpd state=started' shell 远程主机运行命令 尤其是用到管道变量等功能复杂命令...# ansible all -m shell -a 'echo magedu | passwd --stdin user1' script 将本地脚本复制到远程主机运行之 # ansible..." 5.1.5 通过roles传递变量 当给一个主机应用角色时候可以传递变量,然后角色内使用这些变量,示例如下: - hosts: webserver roles: - common...: root 不过,remote_user也可用于各task中,也可以通过指定其通过sudo方式远程主机上执行任务,其可用于play全局或其任务;此外,甚至可以sudo时使用sudo_user指定

    3.1K20

    自动化运维—Ansible(上)

    SSH运行在自定义端口上,ansible使用Paramiko进行ssh连接时,不会使用你SSH配置文件中列出端口,但是如果修改ansible使用openssh进行ssh连接时将会使用: 192.168.1.1...方法1: 进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分提示。...ansible/hosts 里进行指定部分,当然动态Inventory 使用脚本从外部应用里获取主机; 模块名,可以通过ansible-doc -l 查看目前安装模块,默认不指定时,使用是...默认为yes others:所有的file模块里选项都可以在这里使用 src:要复制到远程主机文件本地地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。...:不启用某个源 enablerepo:启用某个源 name:要进行操作软件包名字,也可以传递一个url或者一个本地rpm包路径 state:状态(present【安装】,absent

    2.6K10

    自动化运维实践 | Ansible入门

    ansible all -m ping -u bruce 执行命令 在所有远程主机上,默认以当前Bash同名用户,远程主机执行“echo hello”: ansible all -a "/bin...ansbile all -m setup 四、Ansible脚本管理主机-Playbook 为了避免重复输入命令,Ansbile提供了脚本功能。...Ansible会提供一些常用模块,同时Ansible也提供API,让用户可以自己写模块,使用编程语言是Python。...2.命令行里使用模块 命令行中: -m 后面接调用模块名字 -a 后面接调用模块参数 #使用模块copy复制文件/etc/hosts到远程主机(组)“Web”,位置为/tmp/hosts: ansible...playbook脚本使用模块 playbook中,tasks中每一个action都是对模块一次调用。

    2K21

    如何在Ubuntu 18.04上安装和配置Ansible

    然后运行exit命令以返回主机非root用户: exit 最后,因为Ansible使用位于/usr/bin/pythonpython解释器来运行其模块,所以您需要在主机上安装Python 2,以便...运行以下命令以更新主机软件包索引并安装python软件包: sudo apt update sudo apt install python 在此之后,您可以再次运行exit命令以关闭与客户端连接:...这些基本上是可以远程主机运行命令。ping模块以多种方式运行,如Linux中普通ping实用程序,但它会检查Ansible连接。...ping模块并不真正接受任何参数,但我们可以尝试另一个命令来查看它是如何工作。我们通过输入-a将参数传递脚本。 “shell”模块允许我们将终端命令发送到远程主机并检索结果。...结论 本教程中,我们配置了Ansible并验证它可以与每个主机通信。我们还使用ansible命令远程执行简单任务。

    6.1K30

    Ansible 自动化运维笔记(总结)

    Python2.4 被控机 192.168.1.30 Python2.4 为了避免 Ansible 下发指令时输入目标主机密码,通过证书签名达到 SSH 无密码是一个好方案,推荐使用 ssh-keygen...端口与别名 ssh默认端口是22 (此时Ansible主机配置文件可以省略),但是如果某些主机ssh运行在自定义端口上,Ansible使用Paramiko进行ssh连接时不会使用你ssh配置文件中列出端口...Shell shell 模块可以帮助我们远程主机上执行命令,它与 command 模块不同之处是 shell 模块远程主机中执行命令时,会运行远程主机 /bin/sh 程序处理,也就是说它不是直接执行命令...all -m shell -a "executable=/bin/bash uname -r" -o Script script 模块可以帮助我们远程主机上执行我们编写管理主机脚本,也就是说,脚本一直存在于你管理主机本地...,无需手动拷贝到远程主机,你当然也可以使用copy模块将你脚本拷贝到远程主机,然后执行/bin/bash调用脚本执行,但是这样就太麻烦了,幸好Ansible为我们提供了script管理模块.

    2.1K20

    ansible服务部署与使用

    说明: shell 模块远程执行脚本时,远程主机上一定要有相应脚本 [root@m01 ~]# ansible oldboy -m shell -a "/bin/sh /server/scripts...本地执行脚本时,将脚本内容传输到远程节点上运行 [root@m01 ~]# ansible all -m script -a "/server/scripts/free.sh" 172.16.1.8...别名:thirsty others 所有的file模块里选项都可以在这里使用 src 被复制到远程主机本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。...3.7 fetch 模块  拉取文件 3.7.1 fetch常用参数说明 参数 参数说明 dest 将远程主机拉取过来文件保存在本地路径信息 src 指定从远程主机要拉取文件信息,只能拉取文件...将参数中脚本文件推送到远程屎务器,远程服务器本地执行脚本 sh -x test.sh 说明:ansible执行时,加1上-vvvv显示ansible详细执行过程,也可以定位异常原因!

    4K01

    Ansible自动化运维配置与应用(结合实例)

    ansible是基于模块工作,本身没有批量部署能力。真正具有批量部署ansible运行模块,ansible只是提供一种框架。...特点: 不需要安装客户端 基于模块工作,模块可以以任何语言开发 不仅支持命令行使用模块,也可以支持yaml(python)格式playbook 支持sudo 有提供UI(浏览器图形化) 安装 只需服务端安装...the 'webservers' group [testhosts] 127.0.0.1 192.168.0.109 ##创建主机组 注意,如果要使用127.0.0.1连接本地主机(106)需要将密钥写入本机密钥配置文件...,后面执行过程中,会打印 name变量值 ,可以省略;gather_facts参数指定了以下任务部分执行前,是否先执行setup模块获取主机相关信息,这在后面的task会使用到setup获取信息时用到...--ask-pass 登录密码,提示输入SSH密码而不是假设基于密钥验证 -K --ask-sudo-pass 提示密码使用sudo -s --sudo sudo运行 -S --su

    2.5K20
    领券