Linux自动运维工具Ansible的使用

我们熟悉这个工具后, 可以很轻松的安装k8s.

一.介绍

ansible - run a task on a target host(s)

Ansible是一个用Python开发的运维工具, 可以在本地让远程主机执行命令, 项目地址: Github源码, 中文文档

二.安装

简单上阵, 我们的主机都是ubuntu, 请使用root用户:

sudo su
apt install ansible
ansible --version

配置文件:

ls /etc/ansible

ansible.cfg  hosts

三.使用

请建一台虚拟机, IP: 192.168.119.3, 虚拟机安装请查看VMware Workstation虚拟机安装

首先生成ssh密钥:

ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

之后scp公钥到远程主机, 使得主机间能够互访: scp ~/.ssh/authorized_keys root@192.168.119.3:/root/.ssh.

编辑/etc/ansible/hosts:

[jj]
192.168.119.3

开始测试:

root@xxxxxx:/etc/ansible# ansible jj -m ping
172.16.13.127 | SUCCESS => {
"changed": false,
"ping": "pong"
}

如果失败, 是因为远程主机没有安装python2:

ansible all -m raw -a "wget http://mirrors.163.com/.help/sources.list.trusty && mv -f sources.list.trusty /etc/apt/sources.list"

ansible all -m raw -a  "apt update && apt install -y python2.7 python-simplejson"

接着同步时间之后, 我们再来进行进一步使用:

ansible all -a 'apt install ntpdate'
ansible all -a 'ntpdate time.windows.com'

配置文件和秘钥可额外指定:

ansible autopush -i myansible.ini --private-key m.pem -m ping

四.深入使用

ansible基本有两种: -m后接模块名, -a后接命令参数.

ansible jj -m ping
ansible all -a 'curl www.baidu.com'

如果获取模块列表:ansible-doc -l, 获取指定模块的使用帮助:ansible-doc -s ping

4.1.模块:command

一般命令操作:

ansible all -m command -a 'curl www.baidu.com'

等同于:

ansible all -a 'curl www.baidu.com'

command不支持管道, 请使用shell模块.

4.2.模块:shell

ansible all -m shell -a 'ls / | cat'

脚本传入:

ansible all -m shell -a "$1"

支持管道!

4.3.模块:copy

从本地复制文件到远程

(1) 复制文件

-a "src=  dest=  "

(2) 给定内容生成文件

-a "content=  dest=  "

从本地移动文件在远程:

ansible all -m copy -a 'src=/a.txt dest=/a/a.txt  mode=600'

4.4.模块:file

file模块:设置文件的属性. 此处指远程机器的文件.

(1) 创建目录:

-a "path=  state=directory"

ansible all -m file -a 'path=/test/a  state=directory'

(2) 创建链接文件:

-a "path=  src=  state=link"

ansible all -m file -a 'src=/test/a  path=/test/b state=link'

(3) 删除文件:

-a "path=  state=absent“

ansible all -m file -a 'path=/test/b state=absent'

4.5.模块:fetch

从远程拿文件:

 ansible all -m fetch -a 'src=/test/a.txt dest=/test'
ansible all -m fetch -a "src=$1 dest=/home/chenjh/log/$2"

不能从远程拿目录!

4.6.模块:cron

定制远程定时服务:

-a "minute=
hour=
day=
month=
weekday=
job=
name=
user=
state={present|absent}

absent是删除!

参考: 这篇文章

Linux自动运维工具Ansible的使用的更多相关文章

  1. Linux轻量级自动运维工具-Ansible浅析【转】

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  2. Linux轻量级自动运维工具-Ansible浅析 转

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  3. linux自动化运维工具Ansible saltstack Puppet、Chef、Fabric之间的对比

    发现分布式是一个发展的趋势,无论是大型网站的负载均衡架构还是大数据框架部署,以及云存储计算系统搭建都离不开多台服务器的连续部署和环境搭建. 当我们的基础架构是分散式或者基于云的,并且我们经常需要处理在 ...

  4. 18.自动运维工具ansible

    1 Ansible 介绍和架构 1.1 Ansible介绍 ansible 的名称来自科幻小说<安德的游戏>中跨越时空的即时通信工具,使用它可以在相距数光年的 距离,远程实时控制前线的舰队 ...

  5. 企业级LINUX自动化运维工具Ansible实战课程下载

    什么是Ansible? Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量 ...

  6. 在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操

    前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装.远程部署应用.远程管理能力,支持Windows.Linux.Unix.macOS和大型机等多种操作系统. 下面就以CentOS 7.6 ...

  7. 自动化运维工具-Ansible之7-roles

    自动化运维工具-Ansible之7-roles 目录 自动化运维工具-Ansible之7-roles Ansible Roles基本概述 Ansible Roles目录结构 Ansible Roles ...

  8. 自动化运维工具-Ansible之2-ad-hoc

    自动化运维工具-Ansible之2-ad-hoc 目录 自动化运维工具-Ansible之2-ad-hoc Ansible ad-hoc Ansible命令模块 Ansible软件管理模块 Ansibl ...

  9. 自动化运维工具-Ansible之1-基础

    自动化运维工具-Ansible之1-基础 目录 自动化运维工具-Ansible之1-基础 Ansible 基本概述 定义 特点 架构 工作原理 任务执行模式 命令执行过程 Ansible 安装 Ans ...

随机推荐

  1. Alpha项目冲刺! Day1-领航

    各个成员在 Alpha 阶段认领的任务 成员 任务 任务时长 林恩 项目进度签到代码审核与签入撰写博客协调组内合作 50 寇永明 美工和部分后台编写 30 杨长元 安卓端搭建 45 胡彤 服务器框架搭 ...

  2. Go --- 七牛云 上传文件 & Token demo

    package main import ( "bytes" "crypto/hmac" "crypto/sha1" "encodi ...

  3. ISO/IEC 9899:2011 条款6.4.8——预处理数字

    6.4.8 预处理数字 语法 1.pp-number: digit .    digit pp-number    digit pp-number    identifier-nondigit pp- ...

  4. MySQL数据库之sql_mode解释

    在MySQL5.6中,默认的SQL模式为:NO_ENGINE_SUBSTITUTION, 而在MySQL5.7中默认的SQL模式为:ONLY_FULL_GROUP_BY, STRICT_TRANS_T ...

  5. C# http请求 设置代理(标题可以作为搜索关键字)

    例一(C# 通过代理发HTTP请求): https://q.cnblogs.com/q/88682/ 例二(C# 代理HTTP请求): https://www.cnblogs.com/ShalenCh ...

  6. 【opencv】split

    opencv-split Divides a multi-channel array into several single-channel arrays. code ,,,,,,,,,,,}; Ma ...

  7. 01.轮播图之四 :imageViews(2 或者 3 个imageview) 轮播

    首先说下 3 个imageView的轮播,这个逻辑分析起来 比较简单, 先上传个图片吧::::: 主要分析起来,核心就是这样 :新的图片永远是加在中间ImageView上的,下一轮的第一张图片,是上一 ...

  8. 【C#设计模式2】简单工厂模式

    我们在编程的时候,每当"new"一个对象之后,这个对象就依赖于这个类了.如果在后期的维护过程中由于某些原因需要修改一下这个类,则唯一的做法就是打开源代码,进行修改,修改所有与这个对 ...

  9. 移动架构-AOP面向切面编程

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...

  10. 谈谈NPM和Webpack的关系

    为什么有NPM: 当包引入数量很多时管理就成为了一个问题,这个就是npm为开发者行了方便之处,npm已经为你做好了依赖和版本的控制,也就是说使用npm可以让你从繁杂的依赖安装和版本冲突中解脱出来,进而 ...