必须保证ansible工作站与各个node实现无密码ssh登入

①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible。

 
②:文件服务器1到代理服务器3 - 使用 192.168.1.100 和 Ansible 来自动管理所有的服务器。
 
③:SSH - 在 192.168.1.100 和本地/远程的服务器之间设置 SSH 密钥。
 
 

ssh-keygen -t rsa -p " "   生成密钥

ssh-copy-id  -i  .ssh/id_rsa.pub 172.16.19.1.1 分发密钥

(一)Ansible 入门

官网:https://www.ansible.com
官方文档:http://docs.ansible.com/ansible/latest/index.html

一: ansible介绍

ansible是由 Python 编写的强大的配置管理解决方案,ansible 的特点就在于它的简洁与高效率
ansible与其他的配置管理工具不同点在于:不需要你在想要配置的每个节点上安装自己的组件,也就是说,ansible管理各个节点不需要依赖于agent端

自动运维工具 
(1)puppet (ruby) 各个节点上运行一个agent端的程序 
(2)saltstack (Python) 
(3) ansible (Python)

运维工作的发展历程:

写脚本 ==> 使用自动化运维工具 ==> 自动运维平台

ansible workplace 实现各个节点的管理。

zabbix: agent端,通过执行对于的操作,在节点的本地获取需要采集的数据
将数据返回给zabbix server
 
ansible是通过ssh服务连接到各个node,各个node而言,不需要有任何的agent端,只需要开启
sshd服务,ansible可以通过ssh协议,连接到各个node,基于免密码登入
 
ansible服务端:ansible、配置好ssh免密码登入

ansible:主程序

ansible-doc :模块文档接口程序
ansible-playbook:执行playbook所使用的程序
 
 
ansible连接各个主机使用ssh协议连接
 

二:ansible核心模块介绍

(一)ping (ping模块,用于确认和对象机器之间是否能够ping通,正常情况会返回pong )

ansible 172.16.19.114 -m ping
 
 

(二)command (command 模块用于运行系统命令,比如echo hello, 你安装在系统里的python,或者make 一类) 
Executes a command on a remote node

[root@7 ansible]# ansible webservers -m command -a "ifconfig"
 
 

(三)shell (这个是一个很神奇的模块,它也是ansible的核心模块之一。可以让另外一台主机执行命令)

ansible 172.16.19.249 -m shell -a "echo '123456' | passwd --stdin uplooking"
 
 

(四)copy (copy模块在ansible里的角色就是把ansible执行机器上的文件拷贝到远程节点上。 )

ansible dbservers -m copy -a "src=/root/hello dest=/root/nihao"
ansible 172.16.19.249 -m copy -a "src=/root/hello dest=/root/hello owner=uplooking group=uplooking mode=777"

(五)cron (用于管理任务计划,在一段时间内把所得到的数据输入到 /dev/null)

ansible all -m cron -a "minute=*/30 job='/usr/sbin/ntpdate s2c.time.edu.cn &> /dev/null'"

(六)fetch (从远程节点上拷贝文件到ansible执行机器上)

ansible 172.16.19.249 -m fetch -a "src=/etc/profile dest=/tmp"

(七)file (改变一个文件的主,组 ,权限)

ansible 172.16.19.249 -m file -a "path=/root/nihao owner=uplooking group=uplooking mode=777"
ansible 172.16.19.249 -m file -a "path=/root/ops state=directory"

(八)hostname (更改远程节点的用户名)

ansible 172.16.19.248 -m hostname -a "name=node3"

(九)pip (在远程节点上安装一个jinjia2的模块)

ansible 172.16.19.249 -m pip -a "name=jinja2"

(十)yum (使用yum包管理器来管理软件包)

ansible webservers -m yum -a "name=httpd state=latest" (安装)
ansible webservers -m yum -a "name=httpd state=absent" (=removed移除vb)

(十一)service (管理服务器 ,enables=yes 是开机自启)

ansible webservers -m service -a "name=httpd state=started enabled=yes"

(十二)user (user模块是请求的是useradd, userdel, usermod三个指令 createhome:创建home目录 ,system : 系统用户 , shell:不允许登录)

ansible 172.16.19.246 -m user -a "name=home1 createhome=no uid=4321 system=yes shell=/sbin/nologin"

(十三)group (goup模块请求的是groupadd, groupdel, groupmod 三个指令)

ansible 172.16.19.246 -m group -a "name=uplooking gid=3120"

(十四)setup (setup模块,主要用于获取主机信息,在playbooks里经常会用到的一个参数gather_facts就与该模块相关。)

ansible 172.16.19.246 -m setup

(十五)script (scripts模块可以在本地写一个脚本,然后在远程服务器上执行)

ansible 172.16.19.246 -m script -a "/root/useradd.sh"

(十六)template (template使用了Jinjia2格式作为文件模版,进行文档内变量的替换的模块)

把/mytemplates/foo.j2文件经过填写参数后,复制到远程节点的/etc/file.conf,文件权限相关略过
- template: src=/mytemplates/foo.j2 dest=/etc/file.conf owner=bin group=wheel mode=0644
 
跟上面一样的效果,不一样的文件权限设置方式
- template: src=/mytemplates/foo.j2 dest=/etc/file.conf owner=bin group=wheel mode="u=rw,g=r,o=r"

(十七)unarchive (用于解压文件)

ansible 172.16.19.246 -m unarchive -a "src=/root/wordpress.zip dest=/tmp"

(十八)mount (配置挂载点)

ansible 172.16.19.246 -m mount -a "path=/var/www/html src=172.16.19.246:/data/static fstype=nfs state=mounted"
 
 
 
 
 
 
 
 

ansible的介绍和一些基本模块介绍的更多相关文章

  1. WPF通用框架ZFS《项目结构介绍01》_模块介绍

    首页介绍: 下图为项目运行首页图片, 大的结构分为三块: 1.Header首部模块(存放通知组件[全局通知.消息管理 ].扩展模块[皮肤.系统设置.关于作者.退出系统]) 2.Left左侧菜单模块(存 ...

  2. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  3. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  4. Ansible常用模块介绍及使用(2)

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)–技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几个 ...

  5. Ansible常见模块介绍

    本节内容: ansible命令基础 常见模块举例 一.ansible命令基础 语法: ansible <host-pattern> [-f forks] [-m module_name] ...

  6. ansible入门二(Ansible常见模块介绍)

    本节内容: ansible命令基础 常见模块举例 一.ansible命令基础 语法: ansible <host-pattern> [-f forks] [-m module_name] ...

  7. webkit模块介绍

    一.Webkit模块   用到的第三方库如下:   cairo 一个2D绘图库 casqt Unicode处理用的库,从QT中抽取部分代码形成的 expat 一个XML SAX解析器的库 freety ...

  8. 【液晶模块系列基础视频】1.2.iM_RGB模块介绍

    [液晶模块系列基础视频]1.2.iM_RGB模块介绍(上) [液晶模块系列基础视频]1.2.iM_RGB模块介绍(下) ============================== 技术论坛:http ...

  9. 【液晶模块系列基础视频】1.1.iHMI43模块介绍

    [液晶模块系列基础视频]1.1.iHMI43模块介绍(上) [液晶模块系列基础视频]1.1.iHMI43模块介绍(下) ============================== 技术论坛:http ...

随机推荐

  1. colemak,你用了吗?

    为了输入代码的感觉更好,我学习了colemak键盘布局,这个布局它是在QWERTY的基础上改了10多个键. 开始的三天,感觉非常不好,每按一个键都要思考很长时间,干脆在网上找了个在线打字的网页去练,感 ...

  2. node.js 监听message事件 message字符串丢失信息

    const dgram = require("dgram"); const server = dgram.createSocket("udp4"); serve ...

  3. 20155325 2016-2017-2 《Java程序设计》第4周学习总结

    教材学习内容总结 封装就是将数据与相关行为包装在一起以实现信息就隐藏. 多态是指不同的类对象调用同一个签名的成员方法时将执行不同代码的现象.多态是面向对象程序设计的灵活性和可扩展性的基础. 以封装为基 ...

  4. 【转载】GitHub详解

    原文:GitHub详解 GitHub详解 GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chr ...

  5. 在sql server 中查找一定时间段内访问数据库情况

    total_worker_time AS [总消耗CPU 时间(ms)], execution_count [运行次数], qs.total_worker_time AS [平均消耗CPU 时间(ms ...

  6. L015-linux系统文件权限体系手把手详解小结

    L015-linux系统文件权限体系手把手详解小结 2016-5-24 今天星期二,昨天和今天利用一些闲散时间把第15节课学完了,最近有点懒散哈,还得努力才是.. 这节课内容不多,扩展的也少,主要就是 ...

  7. JS基础,课堂作业,相亲问答

    相亲问答 <script> var a = prompt("你有房子么?"); var b = prompt("你有钱么?"); var c = p ...

  8. Spark优化一则 - 减少Shuffle

    Spark优化一则 - 减少Shuffle 看了Spark Summit 2014的A Deeper Understanding of Spark Internals,视频(要***)详细讲解了Spa ...

  9. 博弈论(Game Theory) - 04 - 纳什均衡

    博弈论(Game Theory) - 04 - 纳什均衡 开始 纳什均衡和最大最小定理是博弈论的两大基石. 博弈不仅仅是对抗,也包括合作和迁就,纳什均衡能够解决这些问题,提供了在数学上一个完美的理论. ...

  10. 心中忐忑的跨进了Python的大门!

    Hello!大家好,我是Jmmy 作为一个python初学者,抱着一种忐忑的心里走进了这扇让我有些胆怯的大门,因为零基础的缘故让我不得不再三去考虑学这门语言,英语.数学都是个渣的我,也许注定会止步门外 ...