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. JavaScript中获取html元素常用手法和区分

    对于许多前端开发项目来说,获取元素进行操作是必不可少的,例如tab标签,全屏切换,自动滚播等效果都需要通过获取节点元素来实现.下面我来总结下JavaScript最常用的4个Document对象中获取元 ...

  2. Windows平台下Java,tomcat安装与环境配置

    问题描述:在Windows下面做Java web相关的项目的时候,Java和tomcat是基础,这里记载一下Java环境的配置以及tomcat的安装和配置. 使用工具:Windows.jdk安装包.t ...

  3. Mac中好用的快捷键

    1.safari safariy页面刷新:Command+R,类似于Win系统里面的F5

  4. angular 中*ngIf 和*ngSwitch判断语句

    <div style="text-align:center"> <h1> Welcome to {{ title }}! </h1> <p ...

  5. redis修改持久化路径、日志路径、清缓存

    redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redis.log #日志路径 dir /data/redis_cach ...

  6. lvs,nginx,haproxy的优缺点,适合场景

    Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件. LVS:使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,它具有很好的可伸缩性.可靠性和可管理性,是一款强大 ...

  7. c# 遍历局域网计算机(电脑)获取IP和计算机名称

    c#可以遍历局域网计算机,获取全部计算机的名称和IP地址,网上提供了相关的几种方法,并对效率进行了比较,但是没有对各种方法进行比较,以确定可以使用的情况.这篇文章将对这几种方法进行分析,以帮助了解各种 ...

  8. CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...

  9. confluent kafka connect remote debugging

    1. Deep inside of kafka-connect start up To begin with, let's take a look at how kafka connect start ...

  10. LeetCode_88. Merge Sorted Array

    88. Merge Sorted Array Easy Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1  ...