ansible for devops 读书笔记第二章Ad-Hoc Commands
- 参数
参数 说明 -a ‘Arguments’, —args=’Arguments’ 命令行参数 -m NAME, —module-name=NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数 -i PATH, —inventory=PATH 指定库存主机文件的路径,默认为/etc/ansible/hosts. -u Username, —user=Username 执行用户,使用这个远程用户名而不是当前用户 -U —sud-user=SUDO_User sudo到哪个用户,默认为 root -k —ask-pass 登录密码,提示输入SSH密码而不是假设基于密钥的验证 -K —ask-sudo-pass 提示密码使用sudo -s —sudo sudo运行 -S —su 用 su 命令 -l —list 显示所支持的所有模块 -s —snippet 指定模块显示剧本片段 -f —forks=NUM 并行任务数。NUM被指定为一个整数,默认是5。 #ansible testhosts -a “/sbin/reboot” -f 10 重启testhosts组的所有机器,每次重启10台 —private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接 -v —verbose 详细信息 all 针对hosts 定义的所有主机执行 -M MODULE_PATH, —module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/ —list-hosts 只打印有哪些主机会执行这个 playbook 文件,不是实际执行该 playbook 文件 -o —one-line 压缩输出,摘要输出.尝试一切都在一行上输出。 -t Directory, —tree=Directory 将内容保存在该输出目录,结果保存在一个文件中在每台主机上。 -B 后台运行超时时间 -P 调查后台程序时间 -T Seconds, —timeout=Seconds 时间,单位秒s -P NUM, —poll=NUM 调查背景工作每隔数秒。需要- b -c Connection, —connection=Connection 连接类型使用。可能的选项是paramiko(SSH),SSH和地方。当地主要是用于crontab或启动。 —tags=TAGS 只执行指定标签的任务 例子:ansible-playbook test.yml –tags=copy 只执行标签为copy的那个任务 —list-tasks 列出所有将被执行的任务 -C, —check 只是测试一下会改变什么内容,不会真正去执行;相反,试图预测一些可能发生的变化 —syntax-check 执行语法检查的剧本,但不执行它 -l SUBSET, —limit=SUBSET 进一步限制所选主机/组模式 –limit=192.168.0.15 只对这个ip执行 —skip-tags=SKIP_TAGS 只运行戏剧和任务不匹配这些值的标签 —skip-tags=copy_start -e EXTRA_VARS, —extra-vars=EXTRA_VARS 额外的变量设置为键=值或YAML / JSON -l —limit 对指定的 主机/组 执行任务 —limit=192.168.0.10,192.168.0.11 或 -l 192.168.0.10,192.168.0.11 只对这个2个ip执行任务 - Inventory file for multiple servers
- vim /etc/ansible/hosts
# Application servers
[app]
192.168.60.4
192.168.60.5 # Database server
[db]
192.168.60.6 # Group 'multi' with all servers
[multi:children]
app
db # Variables that will be applied to all servers
[multi:vars]
ansible_ssh_user=vagrant
ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key1.The first block puts both of our application servers into an ‘app’ group.
2. The second block puts the database server into a ‘db’ group.
3. The third block tells ansible to define a new group ‘multi’, with child groups, and we add in both the ‘app’ and ‘db’ groups.
4. The fourth block adds variables to the multi group that will be applied to all servers within multi and all its children
- ansible multi -a "hostname"
- ansible multi -a "hostname" -f 1 这一次是只是用了一个线程
- servers have disk space available for our application:
- ansible multi -a "df -h"
- make sure there is enough memory on our servers
- ansible multi -a "free -m"
- Make changes using Ansible modules
- ansible multi -s -m yum -a "name=ntp state=present" -s 的意思是sudo
- ansible multi -s -m service -a "name=ntpd state=started enabled=yes"
- ansible multi -s -a "service ntpd stop"
- ansible multi -s -a "ntpdate -q 0.rhel.pool.ntp.org"
- ansible multi -s -a "service ntpd start"
- Configure groups of servers, or individual servers
- ansible app -s -m yum -a "name=MySQL-python state=present"
- ansible app -s -m yum -a "name=python-setuptools state=present"
- ansible app -s -m easy_install -a "name=django"
- ansible app -a "python -c 'import django; print django.get_version()'"
- Configure the Database servers
- ansible db -s -m yum -a "name=mariadb-server state=present"
- ansible db -s -m service -a "name=mariadb state=started enabled=yes"
- ansible db -s -a "iptables -F"
ansible db -s -a "iptables -A INPUT -s 192.168.60.0/24 -p tcp \
-m tcp --dport 3306 -j ACCEPT"- ansible db -s -m yum -a "name=MySQL-python state=present"
ansible db -s -m mysql_user -a "name=django host=% password=12345 \
priv=*.*:ALL state=present"
- Make changes to just one server
- ansible app -s -a "service ntpd status"
- ansible app -s -a "service ntpd restart" --limit "192.168.60.4" limit后还可以用正则比如 --limit "*.4" --limit ~".*\.4"
- Manage users and groups
- ansible app -s -m group -a "name=admin state=present"
- ansible app -s -m user -a "name=johndoe group=admin createhome=yes"
- $ ansible app -s -m user -a "name=johndoe state=absent remove=yes"
- Manage files and directories
- Get information about a file
- ansible multi -m stat -a "path=/etc/environment"
- Copy a file to the servers
- ansible multi -m copy -a "src=/etc/hosts dest=/tmp/hosts"
- Retrieve a file from the servers
- ansible multi -s -m fetch -a "src=/etc/hosts dest=/tmp" 远程服务器拉取文件至本机,只能fetch文件,不能fetch目录,如果拉目录,先tar/zip 再拉到本机即可
- Create directories and files
- ansible multi -m file -a "dest=/tmp/test mode=644 state=directory"
ansible multi -m file -a "src=/src/symlink dest=/dest/symlink \
owner=root group=root state=link"
- Delete directories and files
- ansible multi -m file -a "dest=/tmp/test state=absent"
- Get information about a file
- Run operations in the background
- ansible multi -s -B 3600 -a "yum -y update"
- ansible multi -s -m async_status -a "jid=763350539037"
check on the status elsewhere using Ansible’s
async_status module - Fire-and-forget tasks
- ansible multi -B 3600 -P 0 -a "/path/to/fire-and-forget-script.sh"
- Check log files
- ansible multi -s -a "tail /var/log/messages"
- Manage cron jobs
- ansible multi -s -m cron -a "name='daily-cron-all-servers' \
hour=4 job='/path/to/daily-script.sh'
- ansible multi -s -m cron -a "name='daily-cron-all-servers' state=absent" 删掉
- ansible multi -s -m cron -a "name='daily-cron-all-servers' \
ansible for devops 读书笔记第二章Ad-Hoc Commands的更多相关文章
- ansible for devops读书笔记第一章
yum -y install ansible ansible --version mkdir /etc/ansible touch /etc/ansible/hosts [example] www ...
- STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...
- Getting Started With Hazelcast 读书笔记(第二章、第三章)
第二章 起步 本章就相当简单粗暴了,用一个个例子说明hazelcast怎么用. 1.map,set,list这些集合类都是开箱即用的,只要从Hazelcast的实例中获取一份就行. 2.增加了Mult ...
- Java Concurrency in Practice 读书笔记 第二章
第二章的思维导图(代码迟点补上):
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...
- javascript 数据结构和算法读书笔记 > 第二章 数组
这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: jav ...
- 《C++ Primer》读书笔记—第二章 变量和基本类型
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.8比特的char类型计算机表示的实际范围是-12 ...
- [Effective Java 读书笔记] 第二章 创建和销毁对象 第一条
第二章 创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法 ...
- 《时间序列分析及应用:R语言》读书笔记--第二章 基本概念
本章介绍时间序列中的基本概念.特别地,介绍随机过程.均值.方差.协方差函数.平稳过程和自相关函数等概念. 2.1时间序列与随机过程 关于随机过程的定义,本科上过相关课程,用的是<应用随机过程&g ...
随机推荐
- Dom4j quick start guide
Parsing XML Using Iterators Powerful Navigation with XPath Fast Looping Creating a new XML document ...
- codevs1796 社交网络
Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这 ...
- ambari2.4.2在CentOS7上的二次开发
前言:如果想安装到CentOS7,就一定要将源码在CentOS7上编译,然后安装,否则可能会出现各种问题 目录 源码结构 技术点 编译环境的搭建 安装samba 安装编译环境 整体编译 ambari ...
- django 之补充
在dos命令行中输入 pip 如下命令进行安装: 安装最新的版本的 Django 命令如下: pip install django 安装 指定版本的 Django 命令如下: ...
- Python-flask中数据库连接池DBUtils
一.DBUtils DBUtils是Python的一个用于实现数据库连接池的模块. 连接池的三种模式: 第一种模式: 它的缺点:每一次请求反复创建数据库的链接,链接的次数太多 ...
- JS中跨域问题
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- Spring Cloud Ribbon实现客户端负载均衡
1.构建microservice-consumer-movie-ribbon项目,在pom.xml中引入ribbon依赖 在引入Eureka依赖的时候,默认里面含有ribbon依赖 2.添加@Load ...
- java笔试面试(转载)
Java面试笔试题大汇总(最全+详细答案) 2016-02-01 15:23 13480人阅读 评论(8) 收藏 举报 分类: Java面试题(1) 声明:有人说, 有些面试题很变态,个人认为其实 ...
- SCM-MANAGER 应用
什么是SCM-MANAGER 基于Web的,集成了 Git. Mercurial .Subversion 多种代码管理工具的源代码管理平台 它有什么优点 简易安装 不需要破解配置文件,完全可配置的 ...
- [转载] 最简单的基于FFmpeg的AVDevice例子(读取摄像头)
=====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...