ansible自动化运维

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible自动化运维相关的知识,希望对你有一定的参考价值。

PSSH

相对于ssh来说是多线程的,可以并行在多个客户端执行,效率更高,适合100-300台

安装部署

cd /usr/src/;

wget -c http://www.theether.org/pssh/pssh-1.4.3.tar.gz;

cd pssh-1.4.3;

python setup.py install

报错可能需要源码安装setuptools

管理多个远程主机,要创建一个list文件list.txt

 把要管理的IP写进去


需要做免密钥

#ssh-keygen

#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.102

第一次要输密码,以后就不需要了

pssh -i -h list.txt -l root "任何远程执行的命令;echo "/n""

-p 20 指定最大20个线程来运行pssh

-t -1 永不超时


pscp

pscp -h list.txt auto_install_zabbix.sh /tmp/

pssh -i -h list.txt ‘cd /tmp/;yes/sh auto_install_zabbix.sh‘


pslurp -h list.txt -L /daa/20170519(本地目录) /tmp/zabbix.sh(客户端文件)

pnuke -h list.txt 进程 杀死远程进程

Ansible

维护几千上万台,基于ssh通信,不需要安装agent。

saltstack基于agent通信,还有puppet

基于python开发,维护更简单。

支持免密钥或者密码。

支持sudo普通用户命令

安装

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm;

yum install ansible -y;

cd /etc/ansible/;

这下面有两个文件,hosts和ansible.cfg

hosts是写IP的,可以分组管理

[web]

192.168.1.101

192.168.1.102

,cfg文件就改端口,最大连接数


ansible 

-i 指定使用的inventory文件all或者写哪个组web或者直接指定主机IP 

-m指定使用的模块,默认为command,还有 -m shell可以代替大部分模块,ansible-doc -l是看有哪些模块

-a 指定模块的参数,可以是命令等等。

-k 可以输密码,没有做免密钥方便

ansible all -m copy -a ‘src=/etc/passwd dest=/tmp/ mode=755 owner=root‘

ansible 192.168.1.12* -m yum -a "name=sysstat,screen state=installed"


创建Ansible Playbook

在/etc/ansible/目录下,新建screen.yaml文件,内容如下:

- hosts: all

  remote_user: root

  tasks:

  - name: yum install screen

    shell: yum install screen –y

文件解析:-hosts:all指定对所有hosts生效,remote_user表示远程root,tasks表示需要执行的任务;name显示的名称,shell后面接:需要在远程客户端执行的命令。可以写多个命令,以;分号隔开即可,例如 shell: yum install screen -y ;mkdir /tmp/`date +%Y%m%d`

使用方法:ansible-playbook scree.yaml

以上是关于ansible自动化运维的主要内容,如果未能解决你的问题,请参考以下文章

别让运维太忙,一文详解 Ansible 的自动化运维

运维自动化|系统运维|Ansible的安装及配置使用

Ansible自动化运维详解

运维自动化之ANSIBLE

简单聊一聊Ansible自动化运维

简单聊一聊Ansible自动化运维