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 ...
随机推荐
- 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作
// 读者对象:对TinyXml有一定了解的人.本文是对TinyXml工具的一些知识点的理解. // 1 TinyXml中对TiXmlNode进行了分类,是用一个枚举进行描述的. // enum No ...
- UOJ67 新年的毒瘤
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- HTTP的长连接和短连接(转)
一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...
- 关于谷歌浏览器(chrome)的一些好用的插件推荐
很多在测试时候都可以使用 第一部分: A:Adblock Plus for Google Chrome™https://chrome.google.com/webstore/detail/cfhdoj ...
- python中的单引号双引号和三引号
python的单引号和双引号没有本质的区别,而三引号有两种作用:注释和换行 一. 单引号中可以包含双引号,双引号中可以包含单引号 print("好好学习,'天天向上'") 结果: ...
- handsontable 给单元格自定义属性
setHotAttr(hotObj,rowHeader,colHeader){// 给handsongtable绑定行列属性 console.log(hotObj); console.log(colH ...
- sql语句中as的用法和作用
最近做项目中,偶然发现在SQL语句中出现了as这个词,一直以来没怎么关注是什么意思,毕竟影响不大,今天有空,就在网上查了一些资料,大概有了一些的了解 我们的Sql语句在很多数据库中都是通用的,比如像M ...
- 3.MySQL优化---单表查询优化的一些小总结(非索引设计)
整理自互联网.摘要: 接下来这篇是查询优化.其实,大家都知道,查询部分是远远大于增删改的,所以查询优化会花更多篇幅去讲解.本篇会先讲单表查询优化(非索引设计).然后讲多表查询优化.索引优化设计以及库表 ...
- asp.net core mcroservices 架构之 分布式日志(二)之自定义日志开发
netcore日志原理 netcore的日志是作为一个扩展库存在的,每个组件都有它的入口,那么作为研究这个组件的入口是最好的,首先看两种方式: 这个是源码例子提供的. var loggingConfi ...
- HAWQ 官方文档创建filespace,tablespace,database,table
1.创建Filespace 创建Filespace必须是数据库超级用户( You must be a database superuser to create a filespace.)首先创建一个f ...