1. ansible默认开启ControlPersist,也就是持续化ssh的socket连接,以跳过每次task都需要进行主机认证。

2. 但是centos的openssh版本太老了,不支持ControlPersist,所以ansible会切换使用Python implementation of OpenSSH called ‘paramiko’。

3. ansible默认会认为你是使用秘钥验证的,如果需要输入密码连接,使用-k参数,如果要指定sudo密码,请使用-K参数。

4. 拿到一台新服务器,先初始化系统
   4.1 编辑hosts文件,添加
     [init]
     43.254.55.181
       
   4.2 测试通信
       ansible 43.254.55.181 -m ping -k
       
   4.3 创建playbook相应目录
       mkdir -p roles/{common,nginx,system}/{defaults,files,handlers,meta,tasks,templates,vars}
       
   4.4 复制yum配置文件tar包和preinstall.sh脚本到common/files目录
   
   4.5 编辑common/tasks/main.yml
   - name: cp yum config tar files
     copy: src=CentOS6.5.repo.tar.gz dest=/tmp
   - name: cp preinstall script
     copy: src=preinstall.sh dest=/tmp
   - name: execute preinstall script
     shell: /bin/bash /tmp/preinstall.sh

4.6 编辑preinstall.yml文件
   - name: preinstall
     hosts: init
     remote_user: root
     roles:
       - common
   
   4.7 执行初始化安装
     #ansible-playbook preinstall.yml -k  
   
   4.8 复制Os_Init_Optimization.sh脚本到system/templates/目录
   
   4.9 配置变量:system/vars/main.yml
     port: 50000
     
   4.10 配置task:system/tasks/main.yml
     - name: copy Os_Init_Optimization.sh script to client
       template: src=Os_Init_Optimization.sh dest=/tmp/Os_Init_Optimization.sh
     - name: execute Os_Init_Optimization.sh script
       shell: /bin/bash /tmp/Os_Init_Optimization.sh

4.11 编辑sysinit.yml
     - name: system init
       hosts: init
       roles:
         - system

4.12 执行初始化
     ansible-playbook sysinit.yml -k
   
5. 给初始化化后的服务器分发key
   5.1 touch  .ssh/known_hosts           #paramiko不能自动创建known_hosts文件,手动创建
   
   5.2 修改/etc/ansible/hosts文件
     43.254.55.181:50000
   
   5.3 分发公钥
      批量分发:ansible init  -m authorized_key -k -a "user=lsyw key='{{ lookup('file', '/home/lsyw/.ssh/id_rsa.pub') }}' path=/home/lsyw/.ssh/authorized_keys"

单台分发:ssh-copy-id -i "/root/.ssh/id_rsa.pub" "-p 50000 lsyw@116.204.9.132"         #这个命令同时会把主机加入known_hosts文件

注:默认登录的时候,是根据公钥里面注明的用户家目录下的.ssh/下面去寻找私钥。

5.4 测试key登录
     ansible init -m ping
     
6. 备注:
   由于初始化后服务器不允许root登录ssh,所以操作ansible都使用lsyw用户,但是大部分操作需要root权限,所以需要su到root下执行:
   ansible init -S -R root -m ping -K     # -S -R  指明su及用户 |  -K 指定手动输入su的密码

ansible quick start的更多相关文章

  1. Install Ansible on Mac OSX

    from: https://devopsu.com/guides/ansible-mac-osx.html and : https://devopsu.com/guides/ansible-post- ...

  2. 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机

    目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...

  3. Ansible@一个有效的配置管理工具--Ansible configure management--翻译(十二)

    如果没有书面授权,请勿转载 第五章 自己定义模块 External inventories In the first chapter we saw how Ansible needs an inven ...

  4. Ansible系列(二):选项和常用模块

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  5. devops工具-Ansible基础

    一.Ansible介绍 简介     Ansible使用Python语言开发,是一个配置管理型工具,与之类似的工具还有Puppet.SaltStack.chef等,默认通过SSH协议进行远程命令执行或 ...

  6. [转] Ansible 内置变量参考

    Quick reference for Ansible variables [From] https://github.com/lorin/ansible-quickref

  7. ansible 配置文件设置

    目录 ansible 配置文件设置 一.ansible configuration settings 二.ansible 配置文件查找顺序(从上到下,依次查找) 三.附录ansible配置参数 ans ...

  8. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  9. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

随机推荐

  1. JDK环境变量安装正确还报错的情况解决方案

    环境变量 JAVA_HOME , PATH 都已配置完毕,并且 java -version也显示正确如下 E:\apache-tomcat-8.0.30-windows-x64\apache-tomc ...

  2. 深入理解JVM虚拟机-2垃圾收集器

    这里讨论的收集器基于JDK 1.7 Update 14之后的HotSpot虚拟机. 如果两个收集器之间存在连线,说明可以搭配使用.虚拟机所处的区域,则表示它是属于新生代收集器还是年老代收集器.在这里我 ...

  3. reveal 1.6.3 本机破解及使用

    reveal 强大的iOS UI调试工具 1: 去官网下载最新版本:1.6.3 http://revealapp.com/download/ 2: 安装到mac上,即,解压下载的包,把app拖到mac ...

  4. 利用mycat实现mysql数据库读写分离

    1.这里是在mysql主从复制实现的基础上,利用mycat做读写分离,架构图如下: 2.Demo 2.1 在mysql master上创建数据库创建db1 2.2 在数据库db1创建表student ...

  5. C++/C#中堆栈、对象内存模型、深浅拷贝、Array.Clone方法

    转载自:http://blog.csdn.net/jarvischu/article/details/6425534 目录 1.      C++/C#中对象内存模型................. ...

  6. hdu 1710 二叉树的遍历

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1710 大意:给出一个二叉树的前序和中序,求其后序遍历 ps:1.在写链表时,需要写明typedef str ...

  7. python 练习 29

    Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. 以下实例在变量赋值时 Number 对象将被创建: v ...

  8. robotframework笔记16

    发布处理具有相同名称的关键字 使用机器人框架要么是关键词 图书馆 关键字 或 用户的关键字 . 前来自 标准 库 或 外部库 ,后者 中创建相同的文件在使用或进口 资源文件 . 许多关键字使用时,是很 ...

  9. Intellij IDEA中部署Tomcat报错“war exploded: Server is not connected. Deploy is not available”

    最近将本机的Tomcat 7卸载重装了Tomcat 9后,在IDEA中运行Tomcat老是报错,一直未找到解决问题的办法. 只能讲Tomcat重新退回到版本7,才重新再IDEA中运行正常.

  10. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...