ansible quick start
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的更多相关文章
- Install Ansible on Mac OSX
from: https://devopsu.com/guides/ansible-mac-osx.html and : https://devopsu.com/guides/ansible-post- ...
- 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...
- Ansible@一个有效的配置管理工具--Ansible configure management--翻译(十二)
如果没有书面授权,请勿转载 第五章 自己定义模块 External inventories In the first chapter we saw how Ansible needs an inven ...
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- devops工具-Ansible基础
一.Ansible介绍 简介 Ansible使用Python语言开发,是一个配置管理型工具,与之类似的工具还有Puppet.SaltStack.chef等,默认通过SSH协议进行远程命令执行或 ...
- [转] Ansible 内置变量参考
Quick reference for Ansible variables [From] https://github.com/lorin/ansible-quickref
- ansible 配置文件设置
目录 ansible 配置文件设置 一.ansible configuration settings 二.ansible 配置文件查找顺序(从上到下,依次查找) 三.附录ansible配置参数 ans ...
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- [算法]——快速排序(Quick Sort)
顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...
随机推荐
- import package的问题
在新建class的时候除了名字还可以选择包名: 新建2个包名,然后在不同的包里写2个同名的类, 程序中导入另外一个包 package com.hs;import com.hy.Father; 当直接使 ...
- [转]Android_气泡效果
最近在看以前在eoe上收藏的一些源代码,准备将这些代码加上一些自己的注释,然后贴出来,方便自己日后查阅,和刚入门的人来学习. 今天先看一个气泡窗口,先看一下效果图和目录结构,然后再上代码 通过第一幅图 ...
- robot API笔记5
实现了 Libdoc 工具. 命令行Libdoc入口点和编程接口 提供的是单独的吗 robot.libdoc 模块. 这个包被认为是稳定的但不是公共API的一部分. robot.libdocpkg.L ...
- js和jquery获取子元素
<ul id="nav"> <li></li> <li> <ul> <li></li> < ...
- js一些题目
假期在家,看到的,昨天看了下: 原文链接:http://wwwcqamin.duapp.com/?p=102#comment-7 请说出下面程序的输出结果 第一题: 1 2 3 4 5 6 7 8 9 ...
- WPF: DatePicker
获取DatePicker:date_Start上显示的时间date_Start.SelectedDate 比较两个dateTime类型的时间: DateTime StartDate =Convert. ...
- 离线网页制作器(beta1.0)
package hhuarongdao; /* *使用方法: 先选择保存路径,然后输入相应的网址, *然后会得到那个网页的离线版的 内容 * */ import java.awt.BorderLayo ...
- Reverse Integer [LeetCode]
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to ...
- log4j配置文件的详解
1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为 ...
- 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。解决办法
找到使用中的程序池,右键,设置应用程序默认设置,如下 确定即可.