如果希望在控制主机本地运行一个特定的任务,可以使用local_action语句。 假设我们需要配置的远程主机刚刚启动,如果我们直接运行playbook,可能会因为sshd服务尚未开始监听而导致失败,我们可以在控制主机上使用如下示例来等待被控端sshd端口监听: - name: wait for ssh server to be running wait_for port: 22 host: "...
本地操作功能:local_action Ansible 默认只会对控制机器执行操作,但如果在这个过程中需要在 Ansible 本机执行操作呢?可以使用任务委派功能实现。不过除了任务委派之外,还可以使用另外一种功能实现,这就是 local_action 关键字。 -name: add hostrecordtocenter server local_action: shell'echo "192.168.1.100 test.x...
delegate_to:任务委派功能,指定在某一台机器上执行一个操作 local_action:本地操作功能,在运行ansible命令机器上执行一个操作 ignore_errors:忽略错误的命令,通常情况下当出现执行失败时ansible会停止运行,有时候你会想要继续执行下去就需要添加这个 简单示例: - name: 删除临时目录 shell: rm /tmp/data ignore_error...
最后,再回到上面这个playbook文件中,由于要使用角色变量,所以引入了roles关键字,接下来,在tasks任务中,首先使用了local_action模块,在管理机上生成了一个模板文件hosts.j2,注意这里面的变量{{AnsibleDir}}就是在main.yml中定义好的,run_once表示这个本地shell仅仅执行一次,接着通过set_fact定义了两个变量ipaddress和...
本地操作功能 --local_action Ansible 默认只会对控制机器执行操作,但如果在这个过程中需要在 Ansible 本机执行操作呢?细心的读者可能已经想到了,可以使用 delegate_to( 任务委派 ) 功能呀。没错,是可以使用任务委派功能实现。不过除了任务委派之外,还可以使用另外一外功能实现,这就是 local_action 关键字。
ansible默认只会对远程主机执行操作,但有时候如果需要在管理机本机上执行一些操作,该如何实现呢,这个实现的方法有很多,可以通过delegate_to(任务委派)来实现,也可以通过connection:local方法,还可以通过local_action关键字来实现。 下面来看一个例子,说明它们的用法。
local_action: wait_for host={{ inventory_hostname }} port=80 state=started timeout=80 - name: Add host to load balancing pool local_action: module: ec2_elb region: us-east-1 instance_id: "{{ ec2_id }}" ec2_elbs: "ansible-windows-demo-lb" ...
delegate_to: localhost 如果需要委托loaclhost执行任务,这里提供一个快捷的方式,只要使用local_action作为task的key便行.我们尝试使用这种方式来配置上面的例子,会更加简洁. --- #1 - name: Fetch configuration from all webservers #2 hosts: webservers #3 ...
-hosts:k3s-cluster name:test demo gather_facts:False tasks:-name:waitforssh to be running local_action:wait_for port=22host="{{ inventory_hostname }}"search_regex=OpenSSH-name:gather facts setup: fact缓存 如果在playbook中需要继承fact,可启用fact缓存来提高效率。 fact支持缓存json、memcached、redi...
- hosts: controller # 定义运行的主机vars: # 设置变量deploy_dir: /opt/deployjar_dir_name: registryremote_user: rootgather_facts: notasks:# 获取本地打包好的文件名- name: Get local file namelocal_action: shell ls {{ deploy_dir }}/{{ jar_dir_name }}/*.jarregister: file_name# 创建目...