• Ansible 一



    Ansible是一个配置管理系统configuration management system

    你只需要可以使用ssh访问你的服务器或设备就行。

    1.安装软件
    2.配置服务

    Ansible能做什么

    ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。
    比如:同时在100台服务器上安装nfs服务,并在安装后启动服务。
    比如:将某个文件一次性拷贝到100台服务器上。
    比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。
    这些场景中我们都可以使用到ansible。
    Cobbler
    Ansible

    1.购买机器->2.配置环境->3.部署代码->4测试->5.加入集群

    Ansible/Saltstack(master->minion)

    Ansible软件特点

    1.ansible不需要单独安装客户端,SSH相当于ansible客户端。
    2.ansible不需要启动任何服务,仅需安装对应工具即可。
    3.ansible依赖大量的python模块来实现批量管理。
    4.ansible配置文件/etc/ansible/ansible.cfg



     

    实现从管理机m01到其他机器的密钥认证


    0.ansible借助公钥批量管理
    #利用非交换式工具实现批量分发公钥与批量管理服务器

    [root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31
    [root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.41
    [root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7

    1.安装ansible

    [root@m01 ~]# yum install ansible -y

    2.配置ansible

    [root@m01 ~]# vim /etc/ansible/hosts
    [oldboy]
    172.16.1.31
    172.16.1.41

    3.验证ansible
    # ansible是通过ssh端口探测通信

    [root@m01 ~]# ansible oldboy -m ping
    172.16.1.7 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
    }
    172.16.1.31 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
    }
    172.16.1.41 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
    }


    #批量执行命令

    [root@m01 ~]# ansible oldboy -m command -a "df -h"



    2.如果没有给对应的主机下发公钥,可以使用密码的方式进行添加

    172.16.1.41 ansible_ssh_user='root' ansible_ssh_pass='1' ansible_ssh_port='22'

    3.定义主机清单

    [web]
    172.16.1.7
    
    [nfs]
    172.16.1.31
    
    [backup]
    172.16.1.41
    
    [oldboy:children]
    web
    nfs
    backup
    [root@m01 ~]# ansible web --list-hosts #web
    hosts (1):
    172.16.1.7
    [root@m01 ~]# ansible nfs --list-hosts #nfs
    hosts (1):
    172.16.1.31
    [root@m01 ~]# ansible backup --list-hosts #rsync
    hosts (1):
    172.16.1.41
    [root@m01 ~]# ansible oldboy --list-hosts #集中所有的小组,用于执行一些基础的配置
    hosts (3):
    172.16.1.31
    172.16.1.41
    172.16.1.7




    1、命令 -> 文件 = 脚本
    2、模块 -> 文件 = 剧本

    安装 配置 启动

    1.command 执行命令
    2.shell 执行命令


    3.yum 安装软件模块
    4.copy 配置模块
    5.service 启动服务模块
    6.user 用户管理
    7.file 创建目录,创建文件,往文件写内容
    8.cron 定时任务
    9.mount 挂载

    1.command命令模块

    # 默认模块, 执行命令

    [root@m01 ~]# ansible oldboy -a "hostname"


    # 如果需要一些管道操作,则使用shell

    [root@m01 ~]# ansible oldboy -m shell -a "ifconfig|grep eth0" -f 50 

      

    //后面的50定义一次性显示多少个主机内容
    # -f =forks /etc/ansible/ansible.cfg #结果返回的数量   

    这个文件参数可以更改一次性出现几个输出内容

    2.yum安装模块
    #推送脚本文件至远程,远程执行脚本文件

    [root@m01 ~]# ansible oldboy -m yum -a "name=httpd state=installed"


    name ---指定要安装的软件包名称
    state ---指定使用yum的方法
    installed,present ---安装软件包
    removed,absent ---移除软件包
    latest ---安装最新软件包

    3.copy模块

    查看帮助命令,copy


    # 推送文件模块

    [root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/tmp/test.txt owner=www group=www mode=0600"

    # 在推送覆盖远程端文件前,对远端已有文件进行备份,按照时间信息备份

    [root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/tmp/test.txt backup=yes"  要备份

    # 直接向远端文件内写入数据信息,并且会覆盖远端文件内原有数据信息

    [root@m01 ~]# ansible oldboy -m copy -a "content='bgx' dest=/tmp/oldboy"
    src --- 推送数据的源文件信息
    dest --- 推送数据的目标路径
    backup --- 对推送传输过去的文件,进行备份
    content --- 直接批量在被管理端文件中添加内容
    group --- 将本地文件推送到远端,指定文件属组信息
    owner --- 将本地文件推送到远端,指定文件属主信息
    mode --- 将本地文件推送到远端,指定文件权限信息

    4.service服务模块

    [root@m01 ~]# ansible oldboy -m service -a "name=crond state=stopped enabled=yes"
    name --- 定义要启动服务的名称
    state --- 指定服务状态是停止或是运行
    started --- 启动
    stopped --- 停止
    restarted --- 重启
    reloaded --- 重载
    enabled --- 是否让服务开启自启动

     三部曲

    1.安装
    [root@m01 ~]# ansible web -m yum -a "name=httpd state=installed"
    2.配置
    [root@m01 ~]# ansible web -m copy -a "content='This is Ansible' dest=/var/www/html/index.html"
    3.启动
    [root@m01 ~]# ansible web -m service -a "name=httpd state=started"


    yum copy service mount cron user file
    1.机器还原快照(firewalld、selinux、配置好仓库)
    2.推送你的公钥
    3.指定backup安装rsync、配置、启动、创建目录、创建用户、准备密码文件、权限
    4.指定nfs安装nfs、配置、启动
    5.web挂载nfs
    6.web执行脚本推送数据至bakcup,加入定时任务


  • 相关阅读:
    jQuery Ajax 实例
    jQuery Ajax 实例
    mysql中使用MySqlParameter操作数据库
    mysql中使用MySqlParameter操作数据库
    MySQL limit 分页查询数据库
    html5新特性data_*自定义属性使用
    CSS中zoom和scale的区别
    Linux下nginx编译安装教程和编译参数详解
    nginx.conf配置
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10389216.html
Copyright © 2020-2023  润新知