Ansible 小手册系列 七(Ad-hoc)】的更多相关文章

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…
条件判断 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…
(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 定义远…
异步操作和轮询 --- # 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…
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…
变量名约束 变量名称应为字母,数字和下划线. 变量应始终以字母开头. 变量名不应与python属性和方法名冲突. 变量使用 通过命令行传递变量(extra vars) ansible-playbook release.yml -e "user=starbuck" 在 inventory 中定义变量(inventory vars) host3 http_port=80 # 定义主机变量 [webservers:vars] # 定义组的变量 ntp_server= ntp.example.…
一.包含 (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 动…