Ansible简介
2024-10-09 19:32:21
概述
Ansible是一种自动化运维管理工具,无需安装客户端,通过SSH协议与节点通信。
架构
由上图可以看出Ansible由5个部分组成
- Ansible:核心
- Inventory:定义管理主机的清单
- Modules:包括Ansible自带的核心模块及自定义模块
- Playbooks:Ansible的配置,部署和编排语言(YAML格式)
- Plugins:完成模块功能的补充,包括连接插件、邮件插件
安装
yum install ansible or pip install ansible
在管理节点上python要大于等于2.4,如果远端节点python版本小于2.5,需要安装python-simplejson
如果远端节点开启了SELinux,copy/file/template等相关模块必须在远端节点安装了libselinux-python后才能使用
配置
配置文件:/etc/ansible/ansible.cfg
[defaults] inventory = /etc/ansible/hosts # 清单文件
forks = # 设置多少进程数与远端节点通信
sudo_user = root # sudo用户
remote_port = # SSH端口号
role_path = /etc/ansible/roles # roles的目录,多个目录以冒号分隔
host_key_checking = True # 第一次执行时是否忽略主机SSH KEY验证
remote_user = root # 远端执行用户
清单
默认清单为/etc/ansible/hosts,-i <path>选项可以指定其它清单,[]里面定义Groups,下面是Hosts
[webservers]
foo.example.com
bar.example.com [dbservers]
one.example.com
two.example.com
主机名alias,主机静态IP,主机ssh密码(不安全,建议使用SSH keys)
[test]
node1 ansible_host=192.168.0.100 ansible_ssh_pass="password"
node2 ansible_host=192.168.0.101 ansible_ssh_pass="password"
OR
[test]
192.168.0.100
192.168.0.101
[test:vars]
ansible_port=
ansible_user=xxx
ansible_ssh_pass=xxx
ansible_become_method=sudo
ansible_become=true
ansible_become_pass=xxx
使用
1、Ad-Hoc Commands
ad-hoc command是一种快速执行的模式,且不会保存
2、Playbooks
Playbooks是完全不同于adhoc的执行模式,格式是YAML,每个playbook由一个或更多的'plays'组成
just one play:
---
- hosts: webservers
remote_user: root
tasks:- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
handlers:
- name: restart apache
service: name=httpd state=restarted
Basics
Hosts and Users
---
- hosts: webservers
remote_user: root
Tasks List
tasks:
- name: make sure apache is running
service: name=httpd state=started
Handlers: Running Operations On Change
notify:
- restart apache
handlers:
- name: restart apache
service: name=httpd state=restarted
执行Playbook
ansible-playbook playbook.yml
Usage
ansible
Usage: ansible <host-pattern> [options] Options:
-a MODULE_ARGS # 模块参数
-m MODULE_NAME # 模块名
ansible-playbook
Usage: ansible-playbook playbook.yml Options:
-C, --check # 不执行,只检查远端节点的状态值
-D, --diff # 使用文件,模板这些模块的时候,列出两个文件的不同之处,最好与--check结合使用
--syntax-check # 检查playbook的语法是否正确
ansible-doc # 查看模块的具体用法
Usage: ansible-doc [options] [module...] Options:
-l, --list # 列出所有的模块
-v, --verbose # 输出更详细的模式
最新文章
- Mysql调整字段顺序
- 新人入职100天,聊聊自己的经验&;教训
- iOS Run_time
- 深入分析Java ClassLoader原理
- 《构建之法》8&;16
- OutputCache属性详解(三)— VaryByHeader,VaryByCustom
- python的paramiko源码修改了一下,写了个操作命令的日志审计 bug修改
- java 切换
- Mybatis-Generator 自动生成Dao、Model、Mapping相关文档
- linux - 开机启动thunderbird、chromium
- winform实现listview中combox
- 【问题解决方案】pygame生成的窗口点右上角关闭按钮未响应问题的解决
- Idea debug时报错:Command line is too long
- Error:Execution failed for task :app:transformClassesWithInstantRunForDebug解决方案
- Vuejs——(8)Vuejs组件的定义
- lightgbm的sklearn接口和原生接口参数详细说明及调参指点
- 如何删除sharepoint列表List中的全部数据。
- Linux、apache 无法使用PHP创建目录和文件
- Flask初级(五)flash在模板中使用继承,模板的模板
- maven向本地库添加jar包
热门文章
- Http概述(一)
- 前端手札--meta标记篇
- Linux下SVN安装与基本操作
- JAVA反射其实就是那么一回事
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
- 吉特仓库管理系统-.NET4.0环境安装不上问题解决
- EditPlus v4.5 简体中文
- -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
- 【Spring3.0系列】---Bean不同配置方式比较 和适用场合
- MVC的理解