zoukankan      html  css  js  c++  java
  • 随笔-ansible-1

    系统下所有的操作,从运维操作角度划分为两类:

    1、文件传输

    2、命令执行

    系统下所有的操作,从自动化工作类型角度划分为:

    1、应用部署

    2、配置管理

    3、任务流编排

    使用root生成默认的秘钥对:

    # ssh-keygen -t rsa

    三次回车。

    ansible命令主要在如下场景使用:

    1、非固化需求或临时一次性操作

    2、二次开发接口调用

    复制本地文件到远程

    ansible all -m copy -a "src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=0644 backup=yes"

    src:本地文件

    dest:目标文件

    owner:文件属主

    group:文件属组

    mode:文件权限

    backup:如果远端不存在/tmp/fstab,copy模块会直接复制一份新文件,这里的backup不起任何作用;如果远端存在/tmp/fstab,且我本地的/tmp/fstab内容同远端的/tmp/fstab内容一致,那么任何事情都不会发生,backup依然不起任何作用;如果我本地修改了/etc/fstab文件,那么在复制文件前,会先对远端的/tmp/fstab进行备份(备份到同目录下,也就是/tmp),然后再复制新文件到远端(可以理解为覆盖,反正我已经备份了)。

    返回结果中的三种颜色说明:

    1、红色:执行过程有异常,哪一步出现问题,就在哪停止,剩下的不再执行。

    2、橘黄色:执行过程没有异常,所有任务均正常执行,目标会有状态变化

    3、绿色:执行过程没有异常,所有任务均正常执行,目标没有状态变化

    所谓状态变化,就是实实在在发生了变化,比如新建了文件,文件权限变了,属主变了,大小变了,等等,这都是状态变化。

    Galaxy

    可以理解为Github和Pypi,只不过Github上是很多的开源项目,Pypi上有很多的python库,而Galaxy上有很多的Roles。

    通过git命令来下载Github上的项目;通过pip来安装Pypi上的python库;通过ansible-galaxy来下载Galaxy上的Roles。

    ansible-pull(ansible的拉模式)

    有些管理工具,比如Chef和Puppet,是基于拉模式的。

    所谓拉模式:

    1、管理员写脚本

    2、管理员上传脚本

    3、agent定时取脚本(比如每隔1分钟)

    4、agent运行脚本

    同理,ansible的拉模式也是这种原理。

    新建一个git的仓库,每台机器运行一个cron定时任务(扮演者agent的角色)每隔一段时间去仓库取最新脚本,然后运行之。

    拉模式能轻松应付大规模集群,因为每台机器都是自己去拉取脚本来完成任务。不过也有人用ansible的推模式管理着上千台机器。

     详情请参考:

    https://www.stavros.io/posts/automated-large-scale-deployments-ansibles-pull-mo/

    ansible-doc

    ansible-doc -l

    查看所有的模块

    ansible-doc copy

    模块功能详细说明

    定义主机和组

    定义主机变量

    定义组变量

    定义组嵌套及组变量

    除了在inventory文件中写变量,还可以将变量独立出来,单独放到一个文件中。(文件必须是yaml格式)

    ansible会在以下位置查找变量:

    1、inventory配置文件(默认的是/etc/ansible/hosts文件)

    2、playbook文件中的vars区域

    3、roles中vars目录下的文件

    4、roles同级目录group_vars和hosts_vars目录下的文件

    假如football主机同时属于webserver1和webserver2组,那么可以在以下这些文件中设置football主机的变量:

    1、/etc/ansible/group_vars/webserver1.yml

    2、/etc/ansible/group_vars/webserver2.yml

    3、/etc/ansible/host_vars/football.yml

    重启webservers组所有主机的httpd服务

    Ad-Hoc使用场景

    情景1:节假日将至,需要关闭所有不必要的服务器,并对所有服务器进行节前健康检查。

    情景2:临时更新Apache & Nginx的配置文件,并分发至需要更新该配置的web服务器上。

    Ansible-playbook使用场景

    情景1:新购置的服务器安装完操作系统后需要做一些固定的初始化工作,比如:设置防火墙策略、添加NTP时间服务器、添加EPEL源。

    情景2:业务侧每周定期对生产环境发布代码。

  • 相关阅读:
    HDFS的滚动升级: Rolling Upgrade
    HDFS自定义小文件分析功能
    HDFS自定义小文件分析功能
    HDFS Federation机制
    HDFS Federation机制
    Confluence 6 配置一个数据源连接
    Confluence 6 在数据源连接中启用校验查询
    Confluence 6 从你的 JDBC 连接中直接启用校验查询
    Confluence 6 针对你的数据库类型确定校验 SQL
    Confluence 6 从关闭的连接中恢复
  • 原文地址:https://www.cnblogs.com/t-road/p/11436465.html
Copyright © 2011-2022 走看看