• 第1天:Ansible安装部署


    Ansible介绍

    Ansible是一个简单的自动化引擎,可完成配置管理、应用部署、服务编排以及各种IT需求。它是一款使用Python语言开发实现的开源软件,其依赖Jinjia2paramikoPyYAML这几个python库。

    Ansible安装部署简单,只需要再主控端部署Ansible环境,被控端无须做任何操作,基于SSH进行配置管理。Ansible作为自动化系统运维的一大利器,在构建整个体系过程中有这举足轻重的地位。其简单易用、易于安装、功能强大、便于分享、内含大量模板等都是它的魅力所在,再加上易封装、接口调用方便,Ansible正在被越来越多的大公司采用。

    安装Ansible

    Ansible使用Python语言开发,我们可以直接使用pip进行安装,也可以用Linux下的包管理工具(如yum、apt-get)进行安装

    pip install ansible   #主控端安装即可
    角色 ip 主机名 用户
    主控端 192.168.88.1 c1.heboan.com heboan
    被控端 192.168.88.2   c2.heboan.com heboan
    被控端 192.168.88.3 c3.heboan.com heboan

    主控端生成ssh证书,并分发给被控端,使得主控端可以免密连接被控端

    [heboan@c1 ~]$ ssh-keygen -t rsa
    [heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.2
    [heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.3

    使用Ansible操作远程服务器时 ,首先需要确定是操作哪些服务器,然后再确定对这些服务器执行哪些操作。Ansible默认会读取/etc/ansible/hosts文件中配置的服务器列表,例如/etc/ansible/hosts文件内容如下:

    [heboan@c1 ~]$ cat /etc/ansible/hosts
    [test]
    192.168.88.2
    192.168.88.3

    Ansible中存在一个名为ping的模块,该模块并不是测试服务器的网络连接是否正常,而是尝试建立SSH连接,以便验证用户的SSH配置是否已经正确

    [heboan@c1 ~]$ ansible test -m ping
    192.168.88.3 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    192.168.88.2 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }

    test :代表我们定义的两台服务器

    -m:指定了需要操作的模块

    ping:s是一个模块的名称

    Ansible默认使用当前的用户和默认的22号端口与远程 服务器建立SSH连接,如果需要使用其他用户,或者非默认的SSH端口号,可以在host之后添加用户名或端口号的配置

    [heboan@c1 ~]$ cat /etc/ansible/hosts
    [test]
    192.168.88.2 ansible_user=heboan ansible_port=2202
    192.168.88.3 ansible_user=heboan ansible_port=2202

    一般情况下,工作环境中的服务器ssh用户和ssh端口都相同,如果有很多远程服务器,每一台服务器都需要配置ansible_user或ansible_port参数,如果依然使用上面的方式配置,会显得非常冗余。Ansible默认使用/etc/ansible/ansible.cfg文件,可以设定一些默认值,这样就不需要对同样的内容输入多次

    [heboan@c1 ~]$ cat /etc/ansible/ansible.cfg 
    [defaults]
    remote_port = 2202
    remote_user = heboan
  • 相关阅读:
    实验室资质认定评审准则和要素及要点
    如何进行内审?
    实验室比对结果评价的3种方法
    第一次如何申请CNAS实验室认可资质
    风险评估的实施步骤
    Servlet
    CMMI_SCAMPY评估方法
    PHP_2
    PHP_1
    java中String与StringBuilder的区别
  • 原文地址:https://www.cnblogs.com/sellsa/p/9945635.html
Copyright © 2020-2023  润新知