ansible安装配置

环境准备python

yum -y install openssh-clients wgetlinux

rpm安装web

centos系统须要epel源,shell

yum –y install epel-releasecentos

yum –y install ansible # 默认安装在/etc/ansible/目录下tomcat

配置文件认识ssh

p_w_picpath

ansible.cfg : # 主配置文件ide

p_w_picpath

hosts: # 主机,能够填ip或者主机名,注意这个webservers很是的重要和ansible.cfg配置文件有极大关系,以及下文要用这个测试

p_w_picpath

roles: # 权限fetch

配置密钥与被管理主机通讯,通讯方式为SSH方式

在管理机也就是安装anbisle这个服务的机器上,生成ssh密钥,并把这个密钥复制给被管理机

生成密钥: ssh-keygen -t rsa,默认在/root/.ssh/id_rsa

p_w_picpath

拷贝密钥到被管理机: ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.17.31.43

若是有如下错误,则表示没有安装openssh-clients库,解决方法:yum -y install openssh-clients

p_w_picpath

使用ansible命令进行测试使用验证

命令格式:ansible <host-pattern> [-m module_name] [-a args] [options],以下:

ansible all -m ping

all 表示检测全部被管理机器, –m ping 表示使用ping这个模块,ping通了会返回一个pong值

命令做用:测试目标主机是否存活,如存活会返回success JSON格式的返回值,

p_w_picpath

经常使用命令介绍

ansible-doc:

做用:获取模块列表以及用法,相似linux  --help的做用

p_w_picpath

ansible-doc –l:

做用:获取列表

运行此命令可能遇到遇到的错误,以下:

p_w_picpath

解决方法:

sed -i 's/^#deprecation_warnings = True/deprecation_warnings = False/' /etc/ansible/ansible.cfg

rm -f /usr/lib/python2.6/site-packages/ansible/modules/extras/cloud/misc/rhevm.py

ansible-doc –s:

做用:获取指定模块的使用方法,如ansible-doc –s ping

p_w_picpath

命令格式

ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]

<host-pattern> # 在ansible.cfg配置文件中指明要管控哪些主机,这些主机能够用一个组的方式管控,如[webserver] [dbserver] ,all 设置全部

[-f forks] # 每一批管控多少个主机,默认貌似是5个

[-m module_name] # 指要用哪一种模块进行管理操做,注意全部的操做必需要经过模块来指定

[-a args] # 指明模块所用参数是哪些,除了command模块是直接输出执行命名以外,通常是key-vaule格式

经常使用模块

command模块:

如:ansible webservers -m command -a "ls /var/log/",注意这个commad模块不支持管道命令(|),shell才支持。

p_w_picpath

也能够省略这个commad命令不写,ansible webservers -a "ls /var/log/"

p_w_picpath

如给给远程主机添加用户:ansible webservers -a "useradd tomcat"

p_w_picpath

到被管控机器上去看一下172.17.31.43是否添加成功:

p_w_picpath

p_w_picpath

shell模块

做用: 远程主机在shell进程下运行命令,支持shell特性,支持管道

如给远程主机上的用户添加密码:ansible webservers -m shell -a "echo 123456 | passwd --stdin tomcat" --stdin 这个选项用于 从标准输入 管道读入新的密码

p_w_picpath

copy模块

做用:把当前主机文件复制到被管控主机机器上,能够指定mode(权限)、own(所属主)、group(所属组)

如:ansible all -m copy -a "src=/soft/test_ansible_copy_model.txt dest=/opt/ mode=755 owner=tomcat group=tomcat"

p_w_picpath

p_w_picpath

注意-a后面的参数格式必定要对,否则会报以下错误:

p_w_picpath

cron模块

做用: 在被管控主机上制定crontab周期性计划任务

格式:ansible all -m cron -a "minute=*/10 job='/sbin/ntpdate 172.17.31.44 &> /dev/null' name=synctime"

minute=vaule  hour=vaule day=vaule month=vaule weekday=vaule job=vaule name=value(必须填写) state=vaule

一样的,命令参数不要写错了,写错了就会有如下红色提示:

p_w_picpath

到被管控机器上看crontab -l 或者crontab -e :

p_w_picpath

也能够删除远控主机上的任务计划:ansible all -m cron -a "state=absent name=synctime"

fetch模块

做用:和copy模块相反,从被管控主机上拷贝文件到管控主机上

如:ansible all -m copy -a "src=/opt/test_ansible_copy_model1.txt dest=/opt/test/ flat=yes"

flat=yes做用:

当dest=/opt/test/,test_ansible_copy_model1.txt会保存在/opt/test/目录下

当dest=/opt/test,会拷贝test_ansible_copy_model1.txt文件,并命名为test

file模块

做用:对文件、文件夹、超连接的建立、拷贝、移动、删除操做

test

相关文章
相关标签/搜索