自动化运维工具-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 }}\ndate:{{ rdate.stdout}}\n{{ 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

 

     

posted on 2019-08-22 11:54  浊酒三杯  阅读(350)  评论(0编辑  收藏  举报