参考官方链接:

https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#parallelism-and-shell-commands

  • shell模块使用

    提权操作:

[root@ansible-test ~]# ansible test1 -m shell -a "ls /root" -u zhouyuqiang -k --become -K

SSH password:

SUDO password[defaults to SSH password]:

test1 | CHANGED | rc=0 >>

anaconda-ks.cfg

GateOne-master

master.zip

  • copy操作:

    官方:

    $ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"

实际:

[root@ansible-test ~]# ansible web1 -m copy -a "src=/root/redis-5.0.3.tar.gz dest=/usr/local/src"

查询:

[root@ansible-test ~]# ansible web1 -m shell -a "ls /usr/local/src"

172.16.188.191 | CHANGED | rc=0 >>

redis-5.0.3.tar.gz


  • file模块:

创建文件夹:

state 一定需要指定:

状态:

创建文件夹:directory

(递归)删除文件:absent

创建一个文件:touch

[root@ansible-test ansible-yaml]# ansible web -m file -a "dest=/etc/yum.repos.d/nginx.repo state=absent"

test2 | CHANGED => {

"changed": true,

"path": "/etc/yum.repos.d/nginx.repo",

"state": "absent"

}

test1 | CHANGED => {

"changed": true,

"path": "/etc/yum.repos.d/nginx.repo",

"state": "absent"

}

test3 | CHANGED => {

"changed": true,

"path": "/etc/yum.repos.d/nginx.repo",

"state": "absent"

}


  • yum模块

state 一定需要

状态:

具体版本:present

最新版本:latest

name 是指定需要安装的包名

[root@ansible-test opt]# ansible web1 -m yum -a "name=memcached state=present"

卸载一个版本:

指定状态就可以:absent

[root@ansible-test opt]# ansible web1 -m yum -a "name=memcached state=absent"


  • user模块

    创建一个用户并设置密码:

    [root@ansible-test ~]# ansible web1 -m user -a "name=user1 password=1"

查询:

[root@ansible-test ~]# ansible web1 -m user -a "name=user1 password=1"

删除用户:

指定状态即可:absent

[root@ansible-test ~]# ansible web1 -m user -a "name=user1 state=absent"

指定创建用户不能登录,一般是服务用户:

[root@ansible-test ~]# ansible web1 -m user -a "name=user1 password=123 shell=/sbin/nologin "

如下:

user1❌1002:1003::/home/user1:/sbin/nologin


  • git 模块

    需要指定用户:-uroot

    repo指定git仓库地址

    目标主机需要有git命令,没有进行安装

    [root@ansible-test ~]# ansible web1 -m yum -a "name=git state=latest"

[root@ansible-test ~]# ansible web1 -vvvv -m git -a "repo=https://github.com/ansible/ansible.git dest=/opt/ansibleå-source" -uroot


  • Managing Services启动服务模块

    启动服务:

    state=started

    state=started

    [root@ansible-test ~]# ansible web -m service -a "name=memcached state=started" -uroot

关闭服务:

state=stopped

[root@ansible-test ~]# ansible web -m service -a "name=memcached state=stopped" -uroot

重新启动:

state=restarted

[root@ansible-test ~]# ansible web -m service -a "name=memcached state=restarted" -uroot

加入开机启动:

enabled=true

[root@ansible-test ~]# ansible web -m service -a "name=memcached enabled=true" -uroot


  • setup模块

    [root@ansible-test ~]# ansible web -m setup

如:

"ansible_system_capabilities_enforced": "True",

"ansible_system_vendor": "VMware, Inc.",

"ansible_uptime_seconds": 82564,

"ansible_user_dir": "/root",

"ansible_user_gecos": "root",

"ansible_user_gid": 0,

"ansible_user_id": "root",

"ansible_user_shell": "/bin/bash",

"ansible_user_uid": 0,

"ansible_userspace_architecture": "x86_64",

"ansible_userspace_bits": "64",

"ansible_virtualization_role": "guest",

  进行过滤操作:

  "filter=ansible_user_shell"

  [root@ansible-test ~]# ansible web -m setup  -a "filter=ansible_user_shell"

test2 | SUCCESS => {

"ansible_facts": {

"ansible_user_shell": "/bin/bash"

    [root@ansible-test ~]# ansible web -m setup  -a "filter=ansible_all_ipv4_addresses"

test2 | SUCCESS => {

"ansible_facts": {

"ansible_all_ipv4_addresses": [

"172.16.188.191"

]

},

"changed": false

}

可以通过统配符进行匹配:

如:filter=ipv4

[root@ansible-test ~]# ansible web -m setup -a "filter=ipv4"

test2 | SUCCESS => {

"ansible_facts": {

"ansible_all_ipv4_addresses": [

"172.16.188.191"

],

"ansible_default_ipv4": {

"address": "172.16.188.191",

"alias": "eth0",

"broadcast": "172.16.188.255",

"gateway": "172.16.188.1",


  • playbook的模块

yaml的语法,采用yaml语法,具体语法其实很简单,主要是空格区分目录。每个目录层级是2个空格,每个:后面一定要需要空格,否则语法报错

ansible的模块使用说明的更多相关文章

  1. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  2. ansible服务模块和组模块使用

    本篇文章主要是介绍ansible服务模块和组模块的使用. 主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关 ...

  3. ansible常用模块用法

    ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报  分类: Linux(44)   ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...

  4. Linux之ansible 常用模块

    目的 代码发布系统 代码发布:把本地的代码通过某些方式弄到线上,可以供别人访问 部署 前戏 ansible 批量在远程主机上执行命令 puppet ruby ansible saltstack pyt ...

  5. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  6. Ansible常用模块命令

    Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...

  7. ansible 常用模块的使用

    安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...

  8. Ansible 常用模块(一)

    一.Ansible简介 Ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet(ruby).cfengine.chef.func.fabric.)的优点,实现了 ...

  9. ansible核心模块playbook介绍

    ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述.yaml之于json就像markdown之于html一样,极度简化了json的书写.在学习ansible pla ...

随机推荐

  1. 腾讯云下的CentOS7 配置 Apache服务器

    第一步 :安装Apache服务程序(软件包名为httpd) * yum install httpd 第二步:配置httpd.conf文件 * vi /etc/httpd/conf/httpd.conf ...

  2. php 设计模式之单例模式

    单例模式的关键点 1.//私有构造函数,防止直接new 创建实例 2.//设置静态成员变量 作保存实例 3.//公有访问实例的静态方法 4.//防止克隆对象的方法 上代码: //单例模式 class ...

  3. angular ng-repeat 动态获取的dom片段 显示

    .filter('to_trusted', ['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(tex ...

  4. JAVA 多线程(4)

    接着3说: 一.String常量池 先回顾 java 的基本数据类型: 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配 ...

  5. 前端常用技术概述--Less、typescript与webpack

    前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Less.Sass.Stylus 等,js的超集有Typescript等. ...

  6. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  7. BZOJ4559: [JLoi2016]成绩比较(dp 拉格朗日插值)

    题意 题目链接 Sol 想不到想不到.. 首先在不考虑每个人的真是成绩的情况下,设\(f[i][j]\)表示考虑了前\(i\)个人,有\(j\)个人被碾压的方案数 转移方程:\[f[i][j] = \ ...

  8. IntelliJ IDEA安装、配置、测试

    IntelliJ IDEA安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装.激活与配置 4.开发测试 4.1 JavaSE开发测试(确保JDK已正确安装) 4.2 ...

  9. Python函数式编程(二):常见高级函数

    一个函数的参数中有函数作为参数,这个函数就为高级函数. 下面学习几个常见高级函数. ---------------------------------------------------------- ...

  10. 利用顶点位移进行VR畸变校正

    VR开发的最大挑战之一是对高帧率与高分辨率结合的要求.我们通过把顶点转化为“镜头空间”,删除了需要全屏渲染的纹理,这样就可以大规模提高手机性能. 下面的技术使用谷歌的Cardboard Unity S ...