zoukankan      html  css  js  c++  java
  • 自动化运维工具-Ansible

          自动化运维是这几年很热的话题,而且在招聘上都有这方面的要求。做为运维人员还是需要掌握的一个工具。

          Ansible

          网上资源:https://blog.51cto.com/13525470/2104916   //个人感觉梳理很清晰,很容易入手。

          关于书籍大家也可以看一下: 《Ansible自动化运维技术与最佳实践.pdf》电子版网上很容易入手。  本书第四章 playbook详解 重点看一下,在加上上面提到的网上资源,基本可以应对日常运维应用。

         《Ansible权威指南》 这个也不错。看书才是王道,是人家帮忙梳理完整的知识脉络。

        1、下面是通过playbook写了个测试zlib的安装。

    ---
    - hosts : 192.168.161.235
      vars :
        rmpath : '/opt/openssh'
        lopath : '/opt/openssh_bak'
      tasks :
        - name : copy file
          copy : src={{ rmpath }}/zlib-1.2.11.tar.gz  dest={{ lopath }}
        - name : tar file
          #shell : tar -zxf {{ lopath }}/zlib-1.2.11.tar.gz -C {{ lopath }}
          unarchive : src={{ lopath }}/zlib-1.2.11.tar.gz dest={{ lopath }}
        - name : config
          shell : cd {{ lopath }}/zlib-1.2.11 && ./configure --prefix=/usr/local/zlib-1.2.11-1 && make && make install

        2、远程查看服务器磁盘使用情况

    ---
      - hosts : 192.168.161.235
        vars :
          mrice : mrice
        tasks :
          - name : command 
            command : date 
            register : rdate
          - name : show command result
            debug : msg="show command result {{ rdate.stdout }}"
          - name : df 
            command : df -h
            register : rdf
          - name : show df result
            debug : var=rdf.stdout verbosity=0
          - name : df result file
            shell : echo -e "host:{{ inventory_hostname }}
    date:{{ rdate.stdout}}
    {{ rdf.stdout }}" > /opt/mrice_command
    将结果导出到一个文件中,生产中可以将结果放在共享磁盘上。:
    [root@centos-01 mrice_ansible]# more /opt/mrice_command host:192.168.161.235 date:Thu Sep 5 10:27:13 CST 2019 Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 17G 2.1G 15G 13% / devtmpfs 478M 0 478M 0% /dev tmpfs 489M 140K 489M 1% /dev/shm tmpfs 489M 50M 439M 11% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 1014M 125M 890M 13% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sr0 4.3G 4.3G 0 100% /media 192.168.161.235:/opt/nfs 17G 2.1G 15G 13% /home/w_nfs

        个人目前阶段感觉,可以将之前写好的shell脚本融入到ansible playbook中,完成批量操作。平时临时执行操作,Ansilbe还是挺方便的.后期有新的任务时,可转换playbook完成。Ansible每个步骤都会留下痕迹,明确的显示每一步都做了什么,而且有很多逻辑判断都已封装好了,不像shell需要写上判断。

         实际使用中遇到的问题:

        非ROOT用户远程连接后使用root执行命令:

         ansible -h可以看到有
     
    --become (-b)
     
    --become-method  
     
    --become-user
     
    --ask-become-pass (-K)大写K
     
          四个参数,利用这四个参数可以在ansible命令和playbook中用普通用户执行root操作。
     
          [xguang@centos-01 ~]$ ansible 192.168.161.234 -m shell -a 'date' -k  -b --become-method su --become-user root -K
     
     
          /etc/ansible/hosts中增加
         [xguang]
         192.168.161.234 ansible_become_pass=Aa!@3306      //root 密码
     
          [xguang@centos-01 ~]$ ansible 192.168.161.234 -m shell -a 'date' -k  -b --become-method su --become-user root
         SSH password:
         192.168.161.234 | SUCCESS | rc=0 >>
         Thu Aug 15 11:17:04 CST 2019

         

  • 相关阅读:
    开启JAVA学习之旅 Day1
    python二分法及小tips
    简单的注入脚本
    Requests文档 阅读笔记
    多线程
    IO操作
    异常Exception
    Map集合
    Collection集合
    泛型
  • 原文地址:https://www.cnblogs.com/mrice/p/11393539.html
Copyright © 2011-2022 走看看