异步操作和轮询 --- # Requires ansible 1.8+ - name: 'YUM - fire and forget task' yum: name=docker-io state=installed async: 1000 poll: 0 register: yum_sleeper - name: 'YUM - check on fire and forget task' async_status: jid={{ yum_sleeper.ansible_job_id }} re…
(1). 怎么为任务设置环境变量? - name: set environment shell: echo $PATH $SOME >> /tmp/a.txt environment: PATH: "{{ ansible_env.PATH }}:/thingy/bin" SOME: value (2). 不同的用户登录不同的主机? 在主机清单里设置 [webservers`] asdf.example.com ansible_port=5000 ansible_user=a…
file:获取文件内容 --- - hosts: all vars: contents: "{{ lookup('file', '/etc/foo.txt') }}" tasks: - debug: msg="the value of foo.txt is {{ contents }}" password:生成密码字符串 --- - hosts: all tasks: # 使用只有ascii字母且长度为8的随机密码创建一个mysql用户: - mysql_user:…
用于playbook中的jinja 2过滤器 更改数据格式,其结果是字符串 {{ some_variable | to_json }} {{ some_variable | to_yaml }} 对于人类可读的输出 {{ some_variable | to_nice_json }} {{ some_variable | to_nice_yaml }} 还可以增加参数( new in 2.2) {{ some_variable | to_nice_json(indent=2) }} {{ som…
Facts 是用来采集目标系统信息的,具体是用setup模块来采集得. 使用setup模块来获取目标系统信息 ansible hostname -m setup 仅显示与ansible相关的内存信息 ansible all -m setup -a 'filter=ansible_*_mb' 常用的变量 ansible_distribution ansible_distribution_release ansible_distribution_version ansible_fqdn ansibl…
一.包含 (include) 使用include模块来包含foo文件 tasks: - include: foo.yml --- foo.yml - name: test foo command: echo foo include 还允许传递变量 - include: wordpress.yml wp_user=timmy - include: wordpress.yml vars: wp_user: timmy ssh_keys: - keys/one.txt - keys/two.txt 动…
Ansible提供两种方式去完成任务,一是 ad-hoc 命令,一是写 Ansible playbook.前者可以解决一些简单的任务, 后者解决较复杂的任务. ad hoc——临时的,在ansible中是指需要快速执行,并且不需要保存的命令.说白了就是执行简单的命令—一条命令. 定义主机清单 cat /etc/ansible/hosts [web] 192.168.77.129 ansible_ssh_user=root ansible_ssh_pass=123456 执行shell # 获取w…
[root@host-172-20-6-120 ansible]# ansible --version ansible 2.2.0.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides 配置文件存在不同的位置,但只有一个可用.在下列列表中,ansible从上往下依次检查,检查到哪个可用就用哪个. ANSIBLE_CFG 环境变量,可以定义配置文件的位置 ansi…
仅仅只是介绍,可以选择跳过 ansible ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令.默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块. Usage: ansible <host-pattern> [options] 选项: 参数 说明 -a MODULE_ARGS, --args=MODULE_ARGS 模块的参数. --ask-vault-pass vault 密码. -B SECONDS, --background=SECONDS…
条件判断 When 语句 在when 后面使用Jinja2 表达式,结果为True则执行任务. tasks: - name: "shut down Debian flavored systems" command: /sbin/shutdown -t now when: ansible_os_family == "Debian" 若操作系统是Debian 时就执行关机操作 可以对条件进行分组在比较. tasks: - name: "shut down Ce…