Ansible 应用阐明
[TOC]
1.装置
mac 零碎下能够通过homebrew
来装置,装置脚本如下:
brew install ansible
装置是否胜利校验,执行ansible --version
命令,打印如下信息阐明装置胜利:
ansible 2.9.11 config file = None configured module search path = ['/Users/tomcat/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/Cellar/ansible/2.9.11/libexec/lib/python3.8/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.8.5 (default, Jul 21 2020, 10:48:26) [Clang 11.0.3 (clang-1103.0.32.62)]
2.配置
2.1 创立.ansible.cfg
文件
MacOS上装置完Ansilbe,须要手动创立配置文件(如上配置显示:config file = None
示意未配置配置文件)。.ansible.cfg
是 ansible 的全局配置文件,编辑 ~/.ansible.cfg
文件,将 官网提供的全局配置 ansible.cfg 复制到该文件中。
$ vi ~/.ansible.cfg
指定 inventory 目录的门路为 /usr/local/etc/ansible/hosts
,这个门路能够依据集体爱好规定。
2.2 配置hosts文件
切换到 /usr/local/etc 目录下创立 ansible 目录,并创立 hosts 文件,将 官网提供的 hosts 配置 复制到该文件下。之后还有其它配置文件都能够放在 /usr/local/etc/ansible/ 目录下,办法同 hosts 配置文件。
留神:ansible 默认应用以后零碎用户,如果须要指定用户,能够增加ansible_user=userName
配置指定用户
[test-hosts]192.168.6.1 ansible_user=root192.168.6.2 ansible_user=root192.168.6.3 ansible_user=root
3. 应用
3.1 ansible 命令
# 查问近程服务器的状态ansible 192.168.4.1 -a uptime
3.2 ansible-playbook
一个demo如下:
# 1. 更新logstash.yml 文件并推送到集群中# 2. 重启logstash服务# YAML 还有一个怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 ---. 这是 YAML 格局的一部分, 表明一个文件的开始.# Ansible 应用 “{{ var }}” 来援用变量,foo: "{{ variable }}"---- name: deploy logstash remote_user: root hosts: test_logstash tasks: #拷贝配置文件到近程服务器 - name: 推送配置文件 copy: src: logstash.yml dest: /root/logstash/logstash-6.4.3/config owner: root backup: yes #执行重启命令 - name: 重启logstash systemd: name: logstash state: restarted
4.Ansible异步动作和轮询
默认状况下,Ansible同步运行工作,并放弃与近程节点的连贯关上,直到操作实现。这意味着在playbook中,每个工作默认都会阻塞下一个工作,后续工作要期待当前任务执行完后能力运行。这种模式可能存在一些问题,例如,一个工作实现所需的工夫可能超过SSH会话容许的工夫,从而导致超时。或者长时间运行的过程在后盾执行,异步模式使您能够管制长时间运行的工作的执行形式。
5.参考资料
- MacOS 装置 Ansible
- ansible超具体使用指南
- 如何在ansible的主机文件中指定用户名
- ansible module
- Ansible-commands-modules
- Ansible自动化部署从入门到弃坑
- [Intro to playbooks](