• python中在自动化运维的应用


    写得比较乱,前后语境不好理解,仅作自己留存使用。

    一 python-paramiko
    python ../ssh.py hosts_vertical_new cmd  root


    python ../sftp.py -p hosts_vertical_new root /root/python/audit/audit.rules  /etc/audit/audit.rules
    python ../sftp.py -p hosts_vertical_new root /root/python/audit/auditd.conf   /etc/audit/auditd.conf  
    python ../sftp.py -p hosts_vertical_new root /root/python/audit/audit.tar /opt/
    python ../ssh.py hosts_vertical_new cmd_tarx_bash  root
    python ../sftp.py -g hosts_vertical_new root /opt/audit/audit-check.log ./result/

    [root@bigdataclient sudo]# python /root/python/ssh.py hosts.hiv01  cmd_hive  root  
    Password:
    scchdphiv02101
    SCCHDPHIV02101

    [root@bigdataclient sudo]# python /root/python/ssh.py hosts_hive  cmd_chpasswdomm root
    Password:
    scchdphiv02124
    Changing password for user omm.
    passwd: all authentication tokens updated successfully.
    Adjusting aging data for user omm.
    passwd: Success

    二 ansible
    yum install ansible
    [root@istsvr01:/root/python]#ansible all -i host_stormtag  --list-hosts   从文本host_stromtag中list机器信息
    [root@istsvr01:/root/python]#ansible all -i host_stormtag -m shell -a "hostname" -k -u adminzhy--默认是root用户
    [root@istsvr01:/root/python]#ansible all -i host_stormtag -m command -a "whoami"  -k -u adminzhy--默认是root用户
    ansible  hadoopservers -m shell -a 'touch a'  -k -u adminzhy -K -s #使用adminzhy执行sudo touch一个文件a,hadoopservers 是/etc/ansible/hosts中的一个服务器组
    ansible all -i host_stormtag -m command -a "whoami"  -k -u adminzhy  #host_stormtag 是一个独立的host文件,不在 /etc/ansible/hosts中
    ansible all -i host_tagsvr -m shell -a "df -h"  -k -u adminzhy  -K -s #host_stormtag 是一个独立的host文件,不在 /etc/ansible/hosts中

    1.vim /etc/ansible/ansible.cfg
    2.主机组定义
    vim /etc/ansible/hosts
    [storm_cluster]
    10.223.55.100
    10.223.55.101
    3 复制文件到远程机器
    backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no
    content:用于替代“src”,可以直接设定指定文件的值
    dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
    directory_mode:递归设定目录的权限,默认为系统默认权限
    force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
    others:所有的file模块里的选项都可以在这里使用
    src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

    示例
    ## 将本地文件“/etc/ansible/ansible.cfg”复制到远程服务器
    # ansible storm_cluster -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
    4远程执行shell脚本
    # ansible storm_cluster -m shell -a "/tmp/rocketzhang_test.sh"
     
    建立互信:
     ansible all -m copy -a "src=/root/.ssh/id_rsa.pub dest=/root" -k
     ansible all -m shell -a "cat /root/id_rsa.pub >> /root/.ssh/authorized_keys"
     ansible all -m shell -a "rm -f /root/id_rsa.pub"
    istory |grep -A 3 -B 3 ansible

  • 相关阅读:
    python_workone
    python___"TypeError: 'module' object is not callable"
    显示pycharm的行号
    pycharm切换python版本
    yum安装pip
    informix数据库常用命令(转)
    eclipse打不开的解决办法
    linux修改时间大全
    在安装mysqli的时候,出现error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory
    Amazon Linux AMI 2015.09 (HVM)平台搭建lamp
  • 原文地址:https://www.cnblogs.com/dotagg/p/6364288.html
Copyright © 2020-2023  润新知