• Ansible学习分享(基本)


    背景:Teamleader提到一款好用的自动化配置管理工具,于是前去学习实践,有了下面分享。

    纲要

    一、Ansible简介

    二、Ansible准备

    2.1 Ansible安装

    2.2 设置SSH公钥验证

    三、Ansible配置

    3.1 Ansible主机清单文件

    3.2 Ansible配置文件

    四、Ansible基础

    4.1 Ad-Hoc Command

    4.2Playbook

    4.3ansible-playbook常用命令

    4.4学习链接

    五、Ansible实践:基于Ansible一键批量部署BSTK容器

     

     

     

    一、Ansible简介

     Ansible是一款的自动化运维工具,基于Python开发,可以实现批量系统配置、批量程序部署、批量运行命令等。被管理的远程服务器不需安装代理,通过Ansible我们可以批量管理服务器。

     


     

    二、Ansible准备

     2.1 Ansible安装

     下面仅介绍UbuntuAnsible的安装

     安装步骤:

    1、安装software-properties-common

     sudo apt-get install software-properties-common

     2、添加Ansible

     sudo apt-add-repository ppa:ansible/ansible

     3、刷新系统的包索引

     sudo apt-get update

     4、安装Ansible

     sudo apt-get install ansible

     2.2 设置SSH公钥验证

     设置步骤:

     1、创建本地公钥

     ssh-keygen -t rsa

     2、添加信任到客户端

     ssh-copy-id -i id_rsa.pub bn@172.16.23.XXX

     


     三、Ansible配置

     3.1 Ansible主机清单文件

     Ansible hosts文件默认所在路径/etc/ansible/hosts

     

    方括号[]中是组名,便于对不同服务器进行分组,组内对应各台服务器的信息。

     

    3.2 Ansible配置文件

     Ansible配置文件默认所在路径/etc/ansible/ansible.cfg

    主要设置Ansible初始化信息,如日志存放路径、模块、插件等配置信息。日志路径默认在/var/log/ansible.log

    四、 Ansible基础

    利用Ansible对远程服务器进行操作主要有两种方法,一是Ad-Hoc CommandAd-Hoc Command常用于去比较快速完成一些任务,而不需要将这些执行的命令保存下来,属于临时性命令; 二是PlaybooksPlaybooks可用于批量部署任务编排,编写完xxx.yml后,只需一个ansible-playbook命令,即可完成整个部署任务。


    4.1 Ad-Hoc Command

    Ad-Hoc 命令基本语法:

    ansible 操作目标 -m 模块名称 -a 模块参数

    eg. 将本地目录/home/bn下的test.yml 文件拷贝到远程目录/home/bn

    ansible all -m copy -a “src=/home/bn/test.yml dest=/home/bn”


    操作目标可在/etc/ansible/hosts中定义

    常用的模块有copyfile, command, shell, service, setup等等,更多模块介绍,可用ansible-doc -l查看,具体模块用法,可见官网。


    4.2 Playbook

    Playbook的格式是YML,由一个或多个plays(常用于对多个不同组操作)组成,每个plays中可以定义roles(任务task),每个task中可由Ad-Hoc 的模块命令+ 参数组成

    eg. 如下是一个简单的Playbook

     

     4.3 ansible-playbook常用命令

    1、检查yml文件的语法是否正确

    ansible-playbook test.yml --syntax-check

    2、检查yml文件中的tasks任务

    ansible-playbook test.yml --list-task

    3、检查yml文件中的生效主机

    ansible-playbook test.yml --list-hosts

    4、运行playbook

    ansible-playbook test.yml

    5、运行playbook里面特定的某个task,从某个task开始运行

    ansible-playbook test .yml --start-at-task='XXX'

    6so on 。。。


    4.4 学习链接

    1Ansible官网

    https://www.ansible.com/

    2Ansible中文权威指南

    http://www.ansible.com.cn/

    3Ansible:一个配置管理和IT自动化工具

    https://linux.cn/article-4215-1.html




    五、Ansible实践:基于Ansible一键批量部署BSTK容器

    目录结构如下:

     

     

    其中test.yml是主playbook,不同分组对应不同plays,如docker.ymlgg.yml。具体实现在/home/docker/Docker/roles/special/tasks/main.yml

     

     

     

     

  • 相关阅读:
    To do list
    2020 上半学期比赛记录
    板子
    Project Euler 1~10 野蛮题解
    卡常火车头
    防止unordered_map 被卡方法
    2019 香港区域赛 BDEG 题解
    2019徐州区域赛 ACEFM 题解 & pollard-rho & miller-rabin & 求出每个子树的重心 板子
    BST-splay板子
    ZJOI2017(2) 游记
  • 原文地址:https://www.cnblogs.com/zhonghaijing/p/9782774.html
Copyright © 2020-2023  润新知