ansible命令使用

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

[email protected]~#  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

[email protected]~#  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"

时间: 2024-12-29 09:35:22

ansible命令使用的相关文章

Ansible 四(ansible命令参数)

ansible命令参数: Usage: ansible <host-pattern> [options] Options: -m MODULE_NAME, --module-name=MODULE_NAME 要执行的模块,默认为command -a MODULE_ARGS, --args=MODULE_ARGS 模块的参数 -u REMOTE_USER, --user=REMOTE_USER ssh 连接的用户名,默认用root,ansible.cfg 中可以配置 -k, --ask-pass

ansible命令应用示例

                              ansible命令应用示例                             ping slave组 ansible slave -m ping 用bruce 用户以root 身份ping ansible slave -m ping -u bruce --sudo 用bruce 用户sudo 到batman 用户ping ansible slave -m ping -u bruce --sudo --sudo-user batma

Ansible命令(3)

0.ansible 命令参数详解: [[email protected] ~]# ansible Usage: ansible <host-pattern> [options] Options: -a MODULE_ARGS, --args=MODULE_ARGS    模块的参数,如果执行默认COMMAND的模块,即是命令参数,如:"date","pwd"等等 module arguments    模块参数 -k, --ask-pass       

ansible命令应用基础

ansible命令应用基础:    Usage: ansible <host-pattern> [-f forks] [-m module_name][-a args]        -f forks:启动的并发线程数        -m module_name:要使用的模块        -a args:模块特有的参数        常见模块:ansible-doc -s 模块    --查看模块使用参数command:命令模块,默认模块,用于在远程执行命令:#ansible all -a

自动化运维系列之Ansible命令应用基础(模块的应用)【持续更新中···】

自动化运维系列之Ansible命令应用基础(模块的应用) 模块简介 Ansible可以使用命令行方式进行自动化管理,基本语法如下: ansible <host-pattern> [-m module_name] [-a args] <host-pattern> 对哪些主机生效 [-m module_name] 需要使用的模块 [-a args] 模块特有的参数,这里在使用时需加单引号哦! Ansible的命令行管理工具都是由一系列模块.参数所支持的,可以在命令行后加上-h或--he

ansible命令基础

7.ansible命令基础7.1语法7.1.1ansibleansible <host-pattern> [-f forks] [-m module_name] [-a args]host-pattern:对哪些主机生效,可以直接跟ip,可以调用hosts文件中的定义-f forks:并发线程数,即一批处理多少个主机-m module:使用哪个模块-a args:模块特有的参数,有的有默认值-i 文件名 相当于-inventory-file=文件,可以指定hosts文件7.1.2ansible

ansible命令之Ansible

命令格式: ansible <pattern_goes_here> -m <module_name> -a <arguments>

ansible命令小记

ansible -i vm.host 192.168.34.57 -m copy -a "src=/usr/scripts/scan_port.py dest=/tmp/"远程连接vm.host下的192.168.34.57主机,复制192.168.34.57:/usr/scripts/scan_port.py 到192.168.34.57:/tmp下 ansible -i bnxy.host bnxy -m command -a "yum -y install lrzsz&

ansible命令详解

查看ansible版本 import ansible print(ansible.__version__) 命令参数 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码,当使用密码验证的时候用 -s:sudo运行 -U:sudo到哪个用户,默认为root -K:提示输入sudo密码,当不是NOPASSWD模式时使用 -C:只是测试一下会改变什么内容,不会真正去执行 -c:连接类型(d