Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts 主机清单示例 mail.example.com # FQDN [webservers] # 方括号[]中是组名 host1 host2:5522 # 指定连接主机得端口号 localhost ansible_connection=local # 定义连接类型 host3 http_port=80 maxRequestsPerChild=8…
一.包含 (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 动…
[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…
(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…
playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲所谓task无非是调用ansible的一个module.将多个play组织在一个playbook中即可以让它们联同起来按事先编排的机制同唱一台大戏. 其主要有以下四部分构成: Target section: 定义将要执行 playbook 的远程主机组 Variable section: 定义 playbook 运行时需要使…
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. tasks: - block: - command: echo 1 - shell: echo 2 - raw: echo 3 when: ansible_distribution == 'CentOS' 错误处理 tasks: - block: - debug: msg='i execute normally' - command: /bin/false - debug: msg='i never exec…
变量名约束 变量名称应为字母,数字和下划线. 变量应始终以字母开头. 变量名不应与python属性和方法名冲突. 变量使用 通过命令行传递变量(extra vars) ansible-playbook release.yml -e "user=starbuck" 在 inventory 中定义变量(inventory vars) host3 http_port=80 # 定义主机变量 [webservers:vars] # 定义组的变量 ntp_server= ntp.example.…