ansible命令使用

查看每个服务器的主机名

1
$ ansible multi -a "hostname"

使用一个线程执行命令,相当于顺序在每个服务器上运行(默认5个线程执行)

1
$ ansible multi -a "hostname" -f 1

查看你的环境情况:

查看磁盘使用情况

1
$ ansible multi -a "df -h"

查看内存使用情况

1
$ ansible multi -a "free -m"

查看时间是否准确

1
$ ansible multi -a "date"

如果时间不一致,可以使用ntpdate 同步一下

$ ansoble multi -a "ntpdate cn.pool.ntp.org"

三:配置两台应用服务器

前提是安装好epel源和centos base源(可以使用阿里云的镜像源)

1
2
3
$ ansible app -m yum -a "name=MySQL-python state=present"
$ ansible app -m yum -a "name=python-setuptools state=present"
$ ansible app -m easy_install -a "name=django"

测试django是否安装正确

1
2
3
4
5
6
root@~#  ansible app -a "python -c 'import django; print django.get_version()'"
10.0.0.131 | success | rc=0 >>
1.10
 
10.0.0.130 | success | rc=0 >>
1.10

四:配置数据库服务器

1
2
$ ansible db -m yum -a "name=mysql-server state=present"
$ ansible db -m service -a "name=mysqld state=started enabled=yes"

配置数据库用户django,并且赋予权限

1
2
3
$ ansible db  -m yum -a "name=MySQL-python state=present"
$ ansible db  -m mysql_user -a "name=django host=% password=12345 \
priv=*.*:ALL state=present

五:限制命令只在一个服务器上生效

1
$ ansible app  -a "service ntpd restart" --limit "10.0.0.132"
1
2
3
# Limit hosts with a simple pattern (asterisk is a wildcard).
$ ansible app  -a "service ntpd restart" --limit "*.4"
#以4结尾的ip地址,将会执行命令
1
2
3
# Limit hosts with a regular expression (prefix with a tilde).
$ ansible app  -a "service ntpd restart" --limit ~".*\.4"
#使用正则表达式匹配主机

六:管理系统用户和组

系统添加admin组

1
$ ansible app  -m group -a "name=admin state=present"

系统添加jwh566用户

1
$ ansible app  -m user -a "name=jwh5566 group=admin createhome=yes"

删除系统用户

1
$ ansible app  -m user -a "name=jwh5566 state=absent remove=yes"

七:管理文件和目录

获取文件的信息,权限,所有者等

1
$ ansible multi -m stat -a "path=/etc/environment"

复制文件到服务器

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

从服务器接收文件(接收到控制机)

1
$ ansible multi  -m fetch -a "src=/etc/hosts dest=/tmp"

创建目录

1
$ ansible multi -m file -a "dest=/tmp/test mode=644 state=directory"

创建符号链接

1
2
$ ansible multi -m file -a "src=/src/symlink dest=/dest/symlink \
owner=root group=root state=link"

删除目录和文件

1
$ ansible multi -m file -a "dest=/tmp/test state=absent"

八:运行后台任务

-B <seconds> 指定运行任务的最大时间

-P <seconds> 指定多久时间去一次服务器查看任务执行的状态

异步更新服务器(根据系统情况,可能需要很长时间)

1
2
3
4
5
6
7
$ ansible multi  -B 3600 -a "yum -y update"
    background launch...
     
    10.0.0.132 | success >> {
    "ansible_job_id""763350539037",
    "results_file""/root/.ansible_async/763350539037",
    "started": 1

如果说后台任务还在运行,使用下面的命令查看运行状态

1
$ ansible multi -m async_status -a "jid=763350539037"

九:检查日志文件

1
$ ansible multi  -a "tail /var/log/messages"

如果需要grep,需要使用shell模块

1
2
3
4
5
6
7
8
9
10
root@~#  ansible multi  -m shell -a "tail /var/log/messages | \
 grep ansible-command wc -l"
10.0.0.131 | success | rc=0 >>
2
 
10.0.0.130 | success | rc=0 >>
2
 
10.0.0.141 | success | rc=0 >>
6

这个命令显示每台服务器分别执行了几次ansible命令

十:管理crontab 任务

1
2
$ ansible multi  -m cron -a "name='daily-cron-all-servers' \
hour=4 job='/path/to/daily-script.sh'"

可以使用这个配置ntp 任务

删除crontab任务

1
$ ansible multi  -m cron -a "name='daily-cron-all-servers' state=absent"

ansible命令使用的更多相关文章

  1. ansible命令执行模块使用

    ansible命令执行模块使用 1.命令执行模块-command 在远程节点上运行命令. 命令模块使用命令名称,接上空格-的分割符作为参数使用,但是不支持管道符和变量等,如果要使用这些,那么可以使用s ...

  2. ansible命令应用基础

    ansible命令应用基础:    Usage: ansible <host-pattern> [-f forks] [-m module_name][-a args]        -f ...

  3. ansible命令应用示例

                                  ansible命令应用示例                             ping slave组 ansible slave -m ...

  4. 自动化运维工具——ansible命令使用(二)

    一.Ansible系列命令使用 ansible命令执行过程 1 . 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2 . 加载自己对应的模块文件,如command 3 . ...

  5. 3.3、Ansible命令参数详解

    0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...

  6. 3.1、Ansible命令简要说明及初步使用

    1.Ansible命令 1.1 Ad-hoc说明 Ansible中有一个很重要的功能就是可以执行ad-hoc命令,它表示即时.临时的意思,即表示一次性的命令.与之相对的是ansible playboo ...

  7. Linux命令集锦:ansible命令

    ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...

  8. 关于ansible命令的执行过程

    首先说明一下.每一个模块.都是有相应的.py文件的,可以通过rpm -ql ansible看到 要观察模块执行过程,可以在ansible命令执行时加上-v或-vvv,或者-vvvv看得更加详细 ans ...

  9. ansible命令

    ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s   ...

随机推荐

  1. appium自动化测试(一)

    一. appium的引入 二. adb adb(Android Debug Brige)是用来连接安卓手机和PC端的调试桥梁,通过adb服务,在PC端命令行界面对手机或者模拟器进行全面的操作 安装: ...

  2. C语言小知识点汇集

    1. 三元表达式“?:”冒号两边的两个操作数类型必须一致. 2. 枚举变量的sizeof值同int型一样为4. 3. 为了消除不必要的计算 &&两侧的表达式,当左侧即第1个表达式不成立 ...

  3. [转载]java操作word生成水印

    应用场景 为了保护版权或辨别文件的真伪,有时需要在生成的Word文件中动态添加水印,PageOffice组件的WaterMark类就封装了给在线编辑的Word文件添加水印这一功能,调用接口非常简单. ...

  4. js获取一周的日期范围

    function getWeek() { this.nowTime = new Date(); this.init = function() { this.dayInWeek = this.nowTi ...

  5. LeetCode OJ:Permutations(排列)

    Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the follow ...

  6. LeetCode OJ:First Bad Version(首个坏版本)

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  7. LeetCode OJ:Add Binary(二进制相加)

    Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...

  8. 团队作业:第五周 Alpha版本测试与发布

    团队:你吼辣么大声干什么嘛 Alpha版本测试报告:    bug: 修复的bug:     不能重现的bug:  无 产品设计,非bug: 在双人对战模式中,撞到墙壁会从对面的墙壁穿出,不会死 没能 ...

  9. h5使用模块模板,循环输出模块列表

    博主使用freemarker为框架,不过不影响功能的说明,首先来看看成品效果图 然后是html [#import "/common/layout.ftl" as layout] [ ...

  10. iOS7.1以后企业应用发布需要HTTPS协议,解决步骤

    操作系统是Window下. 第一步安装软件 1.安装Tomcat6.0.35(Tomcat7.0.34测试通过) 2.安装JDK6(1.6.0_10-rc2,其它版本没测试) 3.安装openssl ...