zoukankan      html  css  js  c++  java
  • ansible了解

    基础知识:

    • ansible简介

    ansible 是个什么东西呢?基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。这个工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令 。当然,最主要的是它是基于 paramiko 开发的。这个paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。

    • ansible特点
    1. 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可。
    2. 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。
    3. 使用python编写,维护更简单,ruby语法过于复杂。
    4. 支持sudo。

    • ansible提供的框架
    1. 连接插件connection plugins:负责和被监控端实现通信。
    2. host inventory:指定操作的主机,是一个配置文件里面定义监控的主机。
    3. 各种模块核心模块、command模块、自定义模块。
    4. 借助于插件完成记录日志邮件等功能。
    5. playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

    • 类似的自动化运维工具有很多常用的还有
    1. Puppet:基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱。
    2. SaltStack:基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL,使得配置脚本更简单。






    ansible安装与使用

    1、ssh的安装与配置

    1)安装

    相关命令:

    1. sudo apt-get install openssh-server

    2)配置

    相关命令:

    1. su -
    2. ssh localhost
    3. cd .ssh
    4. ssh-keygen //生成密钥
    5. ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@主机名

    注意:可能会遇到如下问题

    解决:

    编辑sshd_config文件,我们输入:vim /etc/ssh/sshd_config

    默认不允许root登录SSH,所以我们要进行相应设置,替换为如下:

    1. # Authentication:
    2. LoginGraceTime 120
    3. #PermitRootLogin without-password
    4. PermitRootLogin yes
    5. StrictModes yes

    重启ssh服务,我们输入: /etc/init.d/ssh restart

    2、Ansible的安装

    centos6.8的相关命令:

    # yum install 

    # yum install ansible

    ubuntu的相关命令:

    $ sudo apt-get install software-properties-common

    $ sudo apt-add-repository ppa:ansible/ansible

    $ sudo apt-get update

    $ sudo apt-get install ansible

    注意:只要在一个节点安装即可。

    3、编辑hosts文件

    相关命令与内容:

    1. vim /etc/ansible/hosts
    2. ------------------------------内 容------------------------------
    3. [web] //组名自定义
    4. slave1 //用相应主机名代替IP
    5. slave2  
    6. ------------------------------内 容------------------------------

    4、连通测试

    1)查看web组中的主机

    相关命令:

    1. ansible web --list-hosts

    2)测试是否连通

    相关命令:

    1. ansible web -m ping

    5、常用操作

    1)创建文件夹

    参数说明: 

    1. -u 指定运行的用户(默认为root) 
    2. -s 使用sudo权限

    相关命令:

    1. 用户和权限 
    2. ansible spark_cluster -a "mkdir /usr/xx/xx" -s -u userName

    2)复制

    将本地文件/文件夹发送到远程主机,ansible的copy模块是围绕rsync的包装,所以它是增量而不是全量的拷贝。 

    参数说明: 

    1. src 本地文件/文件夹位置 
    2. dest 发送到远程主机的位置 
    3. owner(可选) 所属用户 
    4. group(可选) 所属用户组 
    5. mode(可选) 权限

    将本地文件/etc/ansible/ansible.cfg复制到远程服务器

    相关命令:

    1. ansible web -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"

    3)批量执行脚本 

    在远程批量执行本地脚本

    在装有ansible的节点执行内容:

    1. vim hello.sh
    2. ------------------------------内 容------------------------------
    3. echo "hello world!!!"
    4. ------------------------------内 容------------------------------
    5. ansible spark_cluster -m script -a "hello.sh"

  • 相关阅读:
    107. 二叉树的层次遍历 II
    106. 从中序与后序遍历序列构造二叉树
    105. 从前序与中序遍历序列构造二叉树
    【Python基础编程029 ● 判断语句和循环语句 ● while循环嵌套 】
    【Python基础编程028 ● 判断语句和循环语句 ● continue的用法 】
    【Python基础编程027 ● 判断语句和循环语句 ● break的用法 】
    【Python基础编程026 ● 判断语句和循环语句 ● 使用while语句求累加和 】
    【Python基础编程025 ● 判断语句和循环语句 ● while循环语句 】
    【Python基础编程024 ● 判断语句和循环语句 ● 使用if语句实现三目运算符】
    登录页面二次跳转的案例
  • 原文地址:https://www.cnblogs.com/Su-per-man/p/8312646.html
Copyright © 2011-2022 走看看