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 ...
随机推荐
- C中的指针和字符串
程序 #include<stdio.h>int main(void){ char *mesg="Don't be a fool!"; char *copy; copy= ...
- Linux文件压缩/打包/解压
在Linux日常维护中,经常需要备份同步一些比较重要的文件,而在传输过程中如果文件比较大往往会非常慢,而且还会非常占用空间,这时候就需要我们使用压缩工具对大文件进行压缩打包,下面我们来介绍一下常用的压 ...
- Linux脚本基础
1.文本编辑 命令模式快捷键命令 命令 作用 dd 删除(剪切)光标所在整行. 5dd 删除(剪切)从光标处开始的5行. yy 复制光标所在整行. 5yy 复制从光标处开始的5行. n 显示搜索命令定 ...
- Mybatis_总结_05_用_Java API
一.前言 使用 MyBatis 的主要 Java 接口就是 SqlSession.你可以通过这个接口来执行命令,获取映射器和管理事务. 二.主要类 (1)SqlSession 是由 SqlSessio ...
- filter原理
index.jsp: <a href="product-input.action">input</a> <form action="prod ...
- DataTable:数据库到程序的桥梁
DataTable:是一个临时保存数据的网格虚拟表(表示内存中数据的一个表.).DataTable是ADO dot net 库中的核心对象,它无须代码就可以简单的绑定数据库,它具有微软风格的用户界面. ...
- [BZOJ5248][多省联测2018]双木棋chess
bzoj luogu sol 首先,要保证一个格子的左边和上方都放满了棋子,就需要这个点的左上方那个矩形都放满了棋子. 这样放棋子状态就会是一个自左下至右上的轮廓线. 状态数?\(C_{20}^{10 ...
- STL理论基础、容器、迭代器、算法
一.STL基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段 ...
- ASP.NET MVC 缓存Outputcache (局部动态)
首先说一下需求: 比如我需要对网站首页做缓存,于是在首页对于的Action上贴上了Outputcache,接着问题就来了,首页上的有部分数据是不能做缓存的,比如个人信息,不然,每个人登陆都是看到第一个 ...
- 【ASP.NET Web API2】初识Web API
Web Api 是什么? MSDN:ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务 百度百科:Web API是网络应用程序接口. ...