ansible
ansible:
ansible是一个自动化批量部署工具
幂等性:一种操作重复多次结果相同
核心组件:
Ansible:Ansible的核心程序
Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Connection Plugins:连接插件,Ansible和Host通信使用
底层是拿python写的:
paramiko
jinja2 (模板语言)
yaml
工作原理:
anisble加载hosts文件,通过免秘钥或配置文件参数来批量管理主机
agent:代理(ansible不需要客户端或agent)
ansible server管理客户端的两种配置方式
第一种方法:
server: ssh-keygen
scp id_rsa.pub root@192.168.254.25:/root/.ssh/authorized_keys
第二种方法:
1.vim /etc/ansible/hosts
2.ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=root
测试ansible server跟client端的连通性:
ansible testhosts -m ping
注意:!遇到这种错误~~
使用以下方法:
1>
2>
3>
成功!报错解决~~~
ansible的一些模块用法:
1>
user模块, -f1 并发线程一次
2>
command模块,调用一些shell命令
3>
yum 模块,安装:present 卸载 : absent
4>
service 模块:启动一个服务 !重启: restarted 启动 started 停止 stopped
5>copy 模块 ,src :源文件(从哪里复制) dest:目标目录(复制到哪里)
5>
查看客户端信息~~
6>
运行shell 脚本