ansible

Posted python运维之路

tags:

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

ansible(一)


ansible特点

不需要安装客户端,通过sshd去通信

基于模块工作,模块可以由任何语言开发

不仅支持命令行使用模块,也支持编写yaml格式的playbook

支持sudo

有提供UI(浏览器图形化)www.ansible.com/tower 10台主机以内免费

开源UI https://github.com/alaxli/ansible_ui文档

http://download.csdn.net/detail/liyang23456/7741185

ansible安装

两台机器 192.168.1.33 192.168.1.249

只需要在33上安装ansible即可

yum install –y epel-release

yum install –y ansible

ansible配置密钥

33上生成密钥对

ssh-keygen –t rsa 直接回车即可,不用设置密钥密码

把公钥(id_rsa.pub)内容放到对方机器(249)的/root/.ssh/authorized_keys

chmod 600 /root/.ssh/authorized_keys

关闭selinux  

setenforce 0

远程执行命令

ansible testhost -m command -a 'w'

这样就可以批量执行命令了。这里的testhost为主机名,当然我们也可以直接写一个ip,针对某一台机器来执行命令。

后面带ip

ansible(一)

错误: "msg": "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"

解决: yum install -y libselinux-python

拷贝文件或者目录

ansible testhost -m copy -a "src=/etc/ansible dest=/tmp/ansibletest owner=root group=root mode=0644"

ansible(一)

此时已经复制到目标目录下了

ansible(一)

注意:源目录会放到目标目录下面去,如果目标制定的目录不存在,它会自动创建。如果拷贝的是文件,dest指定的名字和源如果不同,并且它不是已经存在的目录,相当于拷贝过去后又重命名。但相反,如果desc是目标机器上已经存在的目录,则会直接把文件拷贝到该目录下面。

远程执行一个shell脚本

首先创建一个shell脚本

vim /tmp/test.sh

增加如下内容

#!/bin/bash

echo `date` > /tmp/ansible_test.txt

然后把该脚本分发到各个机器上

ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/testshs.sh mode=0755"

ansible(一)

最后是批量执行该shell脚本

ansible testhost -m shell -a "/tmp/testshs.sh"

ansible(一)

另外,shell模块,还支持远程执行命令行并且带管道

ansible testhost -m shell -a "cat /etc/passwd | wc -l"

ansible(一)

cron任务

ansible testhost -m cron -a "name='test cron' job='/bin/touch /tmp/1212.txt' weekday=6"

然后查看一下,是否创建成功了

ansible(一)

若要删除cron只需要加一个字段state=absent

nsible testhost -m cron -a "name='test cron' job='/bin/touch /tmp/1212.txt' weekday=6 state=absent"

yumservice

ansible testhost -m yum -a "name=httpd"

ansible testhost -m service -a "name=httpd state=started enabled=yes"

关闭httpd

ansible testhost -m service -a "name=httpd state=stopped enabled=yes"

文档使用

ansible-doc –l

列出所有模块

ansible(一)

ansible-doc cron

查看指定模块的文档



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

Ansibleansible安装,用户级执行ansible命令,清单构建,配置文件详解

Ansibleansible安装,用户级执行ansible命令,清单构建,配置文件详解

AnsibleAnsible控制windows插件安装及运行error与解决方法

ansible控制windows 2019

Ansible 自动化常用实例

初识Ansible