ansiable自动化运维工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansiable自动化运维工具相关的知识,希望对你有一定的参考价值。
日常的运维工作任务
系统安装(物理机、虚拟机) --> 程序包安装、配置、服务启动 --> 批量操作 --> 程序发布 --> 监控
OS Provisioning
物理机:PXE(预引导程序)、Cobbler
PXE(网卡支持网络引导、dhcp、filename、next-server、tftp-server(UDP69端口监听))
-->pxelinux.0
-->vmlinux、initrd.img
-->menu.c32
-->pxelinux.cfg/default
虚拟机:Image Templates
Configration
程序包、用户管理、配置文件、服务管理、cron任务等
puppet (ruby研发的)
saltstack (python研发)
chef
cfengine(C/C++研发)
管理完成配置的安装和批量的管理
Command and Control
fabric
func
进入正题:
ansiable自动化运维工具
①ansible优点:
1、configuration:(cfengine、chef、puppet) 服务的配置
2、Deployment(Capistrano、Fabric) 应用程序的部署
3、Ad-Hoc Tasks(Func) 批量命令执行
4、Multi-Tier ORCHEHESTRATION 多层次的任务编排
②ansible特性:
上手方便简单
NO bootstrapping
No DAG ordering
NO agent
No server
No additional PKL
模块化,调用特定的模块,完成特定的任务
基于Python语言实现由Paramiko、Pyyaml(标记语言)jinja2三个关键模块
部署简单,agenless
支持自定义模块
支持Playbook
幂等性:允许重复执行多次
③ansible的模块:
查看doc帮助文档
ansible-doc -s command
command -a ‘command‘ ansible all -m command -a ‘echo Centos | passwd --stdin Centos‘ 赋予Centos用户密码但是这 样是只打印出整体 user -a ‘name= state={present|absent} system= uid=‘ ansible 主机名 -m user -a ‘name=cluster state=present ‘ group -a ‘name= gid= state= system=‘ cron -a ‘name= minute= hour= day= month= job= user= state=‘ ansible 主机名 -m cron -a ‘name="sync time from ntpserver" state=present minute=*/10 job="/sbin/ntpdate 要同步的主机IP &>/dev/null"‘ ansible all -m cron -a ‘name="sync time from ntpserver" state=absent‘ 删除计划 copy -a ‘src=\‘#\‘" /etc/fstab dest=/tmp/fstab.tmp mode=600‘ file -a ‘path= mode= owner= group= state={directory|link|present|absent} src=\‘#\‘" /pre>
④ansible -playbooks的核心元素
->Tasks任务
->Variables变量
->Templates模板
->Handlers处理器
->Roles角色
⑤配置文件:
/etc/ansible/ansible.cgf 角色列表
/etc/ansible/hosts 主机清单
⑥ansible 源码安装配置
解决依赖:
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
克隆到主机:
git clone git://github.com/ansible/ansible.git --recursive
安装文件:
source ./ansible/hacking/env-setup
创建配置文件:
mkdir -p /etc/ansible
cp ./examples/ansible.cfg /etc/ansible/
cp ./examples/hosts /etc/ansible/
创建公钥传递给要管理的主机:
ssh-keygen -t rsa -P ‘‘ ##一路回车
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh IP ‘ifconfig‘ ##测试是否连通
ansible all -m ping
以上是关于ansiable自动化运维工具的主要内容,如果未能解决你的问题,请参考以下文章