[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…
条件判断 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…
playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲所谓task无非是调用ansible的一个module.将多个play组织在一个playbook中即可以让它们联同起来按事先编排的机制同唱一台大戏. 其主要有以下四部分构成: Target section: 定义将要执行 playbook 的远程主机组 Variable section: 定义 playbook 运行时需要使…
异步操作和轮询 --- # 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…
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…
仅仅只是介绍,可以选择跳过 ansible ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令.默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块. Usage: ansible <host-pattern> [options] 选项: 参数 说明 -a MODULE_ARGS, --args=MODULE_ARGS 模块的参数. --ask-vault-pass vault 密码. -B SECONDS, --background=SECONDS…
(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…
Play 指令 说明 accelerate 开启加速模式 accelerate_ipv6 是否开启ipv6 accelerate_port 加速模式的端口 always_run   any_errors_fatal 有任务错误时,立即停止 become 是否提权 become_flags 提权命令的参数 become_method 提权得方式 become_user 提权的用户 check_mode 当为True时,只检查,不做修改 connection 连接方式 environment 定义远…
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…