栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ansible

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ansible

centos7安装与配置ansible 一、安装ansible
yum install epel-release -y

yum install ansible -y

二、配置ansible

1、 使用ansible前需实现ansible服务器对另外两台机的ssh无密码访问,操作如下:

  a、 输入命令:ssh-keygen,一直按回车,直至完成操作;

  b、 命令:ssh-copy-id root@192.168.159.129 ,然后输入连接密码即可实现无密码访问

2、 添加ansible客户机组,命令:vim /etc/ansible/hosts,在最后面添加如下内容:

[root@localhost ~]# vim /etc/ansible/hosts 

[web]
192.168.159.129

三、使用ansible

使用以下命令列出默认清单文件中的所有受管主机:

[root@localhost ~]# ansible all --list-hosts
  hosts (1):
    192.168.159.129

3.1运行临时命令

Ansible运行临时命令的语法如下:

ansible host-pattern -m module [-a 'module arguments'] [-i inventory]
[root@localhost ~]# ansible web -m command -a "ls"
192.168.159.129 | CHANGED | rc=0 >>
anaconda-ks.cfg

command模块允许管理员对受管主机快速执行远程命令。这些命令不是由受管主机上的shell加以处理。因此,它们无法访问shell环境变量,也不能执行重定向和管道等shell操作。

在命令需要shell处理的情形中,管理员可以使用shell模块。与command模块类似,可以在临时命令中将要执行的命令作为参数传递给该模块。Ansible随后对受管主机远程执行该命令。与command模块不同的是,这些命令将通过受管主机上的shell进行处理。因此,可以访问shell环境变量,也可以使用重定向和管道等操作。

以下示例演示了command与shell的区别。如果尝试使用这两个模块执行内建的Bash命令set,只有使用shell模块才会成功:

[root@localhost ~]# ansible web -m command -a 'set'
192.168.159.129 | FAILED | rc=2 >>
[Errno 2] 没有那个文件或目录
[root@localhost ~]# ansible web -m shell -a 'set'
192.168.159.129 | CHANGED | rc=0 >>
BASH=/bin/sh
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()

ansible常用模块raw、command、shell的区别:

shell模块调用的/bin/sh指令执行command模块不是调用的shell的指令,所以没有bash的环境变量raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号