Ansible 学习笔记

最近因为需要管理很多台机器,而这些机器又需要频繁重新安装,实在受不了Puppet需要在每个客户机上都安装一遍,于是转头开始学些Ansible。根据这段时间的使用,这个确实是神器,唯一的感觉就是相见恨晚。

下面纪录一下最近的学习心得。

  • Ansible是基于单客户端,多服务器端的模式。这可能是和Puppet等基于单服务器端,多客户端的最大不同。
  • Ansible是用Python编写的,易于扩展,便于调试
  • 下面以最常见的需要客户端和所有服务器建立ssh信任关系为例,看看ansible多么简单。首先建立hostfile添加所有要处理的机器,之后执行下面的命令
  •    ansible all -h hostfile -m authorized_key -a "user=root key=‘{{ lookup(‘file‘, ‘/home/myname/.ssh/id_rsa.pub‘) }}‘ path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko

    这样就可以讲本机上myname这个用户的key添加到了所有机器root的信任列表里了。如果这些机器的root密码不一致,只需要执行多次,每次输入不同密码即可。当然authorized_key还有更多的玩法,不过这个最简单的例子就可以秒杀好多其它工具。

  • 查看和所有机器的互通情况,如果可以以root操作的话,下面的命令就会返回pong来响应
  • ansible all -h hostfile -u root -m ping
  • 查看所有机器的硬件和系统配置情况,会输出非常详细的列表
  • ansible all -h hostfile -u root -m setup
时间: 2024-12-24 22:47:45

Ansible 学习笔记的相关文章

运维自动化工具ansible学习笔记

利用五一假期的时间学习了下ansible,看了一天的官方文档,对其中需要注意的地方,做下笔记整理下思绪. 一.简介 Ansible是与puppet.saltstack类似的集群管理工具,其优点是仅需要ssh和Python即可使用,而不像puppet.saltstack那样都需要客户端.puppet与saltstack这2个软件都需要安装客户端,而saltstack与ansible很相似,都是属于python流的,但saltstack不是很稳定:puppet虽然稳定,但命令执行的时候,需要配置模块

ansible学习笔记(一)

最近在学习使用ansible,为了未来的大规模部署应用做准备,这东西比我之前用过的puppet,saltstack都简便一点,没有client端,也不需要额外配置,基本上手技能用,据说在国外的热门程度目前也超过saltstack了. 下面就开始零星的记录吧. 确保服务在running状态 tasks:   - name: make sure apache is running     service: name=httpd state=running 写web server的vhost配置文件可

ansible学习笔记(二):ansible for CentOS6安装

### 最近有点儿时间了,再继续学习Asible,本节尝试使用pip安装ansible for CentOS6.5,其中OS是最小化安装. 2.2 Installing ansible on CentOS 6.5 2.2.1 pip安装Ansible ###(1) 准备环境: # python -V       # 版本:Python 2.6.6 # yum install gcc gcc-c++ # yum install git -y # yum install python-devel p

ansible 学习笔记(上)

运维工具 当前常见的运维工具(Configuration)有以下一种puppret(ruby)saltstack(python)chefcfengine.... Command and Control; fabricfunc 程序发布: 手动发布 脚本发布 发布程序(运维程序) 程序发布要求:1.不能影响用户体验:2.系统不能停机:3.不能导致系统故障或造成系统完全不可用: 灰度发布模型(考虑以下两种维度):1.主机:2.用户: 发布思路: /webapps/tuangou /webapps/t

ansible学习笔记9-playbooks之include

task include files 在不同tasks之间plays和playbooks可以重复调用.include files可以达成目的 系统通过使用include task来完美实现role定义,记住,playbook中的play最终 目的是映射系统群到多个roles中 cat tasks/foo.yml --- # possibly saved as tasks/foo.yml - name: placeholder foo command: /bin/foo - name: place

[ansible学习笔记]Error: ansible requires the stdlib json or simplejson module, neither was found!

1.执行ansible命令的时候客户端rhel56-192.168.209.133 出现以下错误: [[email protected] ansible]# ansible all -m command -a "python -V" -u reed SSH password: rhel56-192.168.209.133 | FAILED | rc=0 >> Error: ansible requires the stdlib json or simplejson modu

ansible学习笔记

一.ansible的基本简介: ansible式什么? Ansible 是一个适用于成百上千规模的受控节点的配置管理.应用程序部署.内部服务编排等诸多功能于一身的极为简单的IT运维自动化工具引擎,基于Python开 发.她无需代理,很容易部署,除SSH外没有其他安全基础设施/配置要求.她使用了一个非常简单的语言(YAML),让你可以编写自己的自动化作业脚本. ansible式怎样工作的? Ansible连接到受控机,并推送一个称为"Modules"的应用程序到受控机上,Ansible然

ansible学习笔记4-playbooks之setup

ansible 192.168.80.20 -m setup 192.168.80.20 | SUCCESS => {     "ansible_facts": {         "ansible_all_ipv4_addresses": [             "192.168.80.20"         ],          "ansible_all_ipv6_addresses": [          

我的Ansible学习笔记

Ansible常见错误 http://afewbug.com/article/26官方文档 http://docs.ansible.com/ansible/安装配置 http://sofar.blog.51cto.com/353572/1579894 目录一.介绍二.yum安装三.Ansible配置四.模块五.playbook六.实战演练--用Ansible实现LANMP的安装 注意:以下实验环境均为关闭selinux和清空防火墙配置,需要把/etc/my.cnf 改为/etc/my.cnf.b