参考官方链接:

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. 利用CodeDom 动态执行条件表达式

       在实际需求遇到需要根据不同条件,去指定不同的不同的审批人.起初的需求倒很简单,明确是当金额 >=500000 , 可变的就是500000这个数额. 当时为了防止可能产生的变化.特意搞了 条 ...

  2. webpack+vue+vueRouter模块化构建完整项目实例详细步骤-入门篇

    新建项目 开始(确认已经安装node环境和npm包管理工具) 1.新建项目文件名为start_vuedemo 2.npm init -y 初始化项目,我的win7系统,工程在d盘的vue_test_p ...

  3. vuejs通过filterBy,orderBy实现搜索筛选,降序排序数据实例

    直接贴代码了: 先上输入前的样子: <style> #example{margin:100px auto;width:600px;} .show{margin:10px;} #search ...

  4. HDU1521 排列组合(生成函数 背包)

    题意 链接 Sol 可以用生成函数做,也可以用组合数做. 生成函数就是无脑算一下阶乘暴力背包,然后最后再乘上\(M\)的阶乘 组合数的方法就是用类似背包的转移,转移的时候考虑当前放的这几个的方案数即可 ...

  5. angularJS中控制器和作用范围

    $scope是$rootScope的子作用域控制对象,$rootScope的id为1,其他的为2,3,4... 不同的控制器之间,所对应的作用域控制对象$scope,之间是相互隔离的,如果要共享数据, ...

  6. java方法中把对象置null,到底能不能加速垃圾回收

    今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的. 测试的过程中,费劲的是要指定一个合理的测试堆大小 ...

  7. PHP的匿名函数和闭包

    匿名函数 // Example1 $func = function( $param ) { echo $param; }; $func( 'some string' );//输出:some strin ...

  8. Symantec Backup Exec Agent 推送错误Error connecting to the remote computer. Ensure that the computer is available, has WMI enabled and is not blocked by a firewall

    如果在Symantec Backup Server上推送Symantec Backup Exec Agent到数据库服务器遇到“"Error connecting to the remote ...

  9. java----JSTL学习笔记(转)

    Java容器类包含List.ArrayList.Vector及map.HashTable.HashMap.Hashset ArrayList和HashMap是异步的,Vector和HashTable是 ...

  10. PE 添加系统管理员账号(域控可加)转

    使用U盘制作一个PE系统,这里推荐老毛桃或者大白菜:开机进入Bios,选择U盘启动:进入U盘启动画面后,选择一个PE系统:进入PE系统后,我们去本机系统盘,将 C:/Windows/System32/ ...