centos ansible常用命令
ansible在日常运维中经常使用,特别是批量执行多台服务器的时候,有效减小重复的操作成本,以下从安装到使用仅讲解工作中常用的几种方式,模块很多功能很强大,但不做全面讨论。
ansible安装
在centos服务器中安装ansible很简单,只需两条命令:
yum install epel-release
yum -y install ansible
ansible --version
ansible 2.9.16
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /bin/ansible
python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
ansible配置
配置hosts,添加需要被管理的主机
[root@test01 ~]# cat /etc/ansible/hosts
[webservers]
10.124.59.82
10.124.59.83
[dbservers]
10.124.59.208
10.124.59.209
[ftp]
10.124.59.210
生成密钥
[root@test01 ~]# ssh-keygen
使用ssh-copy-id命令来复制ansible公钥到各个节点
[root@test01 ~]# ssh-copy-id root@10.124.59.82
[root@test01 ~]# ssh-copy-id root@10.124.59.83
[root@test01 ~]# ssh-copy-id root@10.124.59.208
[root@test01 ~]# ssh-copy-id root@10.124.59.209
[root@test01 ~]# ssh-copy-id root@10.124.59.210
执行ping命令测试
[root@test01 ~]# ansible all -m ping
10.124.59.210 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
10.124.59.209 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
10.124.59.82 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
10.124.59.83 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
10.124.59.208 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
success说明安装配置成功。
ansible常用模块与使用
实际使用过程中,会有几个模块经常用到,下面列出如下:
- ping模块
测试主机是否是通的,用法很简单,不涉及参数
以上已经举例,这里不再赘述。
- command模块
ansible管理工具使用-m选项来指定使用模块,默认使用command模块,
即-m选项省略时会运行此模块,用于在被管理主机上运行命令。
远程执行命令,但不支持管道。它是默认命令可不指明模块。
- shell模块
远程执行命令,与command的不同在于可以使用管道。
- copy:拷贝文件到远程主机
用法:
src :本地文件路径,可以是绝对和相对
dest= :不可省,如果src是目录,则dest也是目录。只能是绝对路径
group :指明文件属组
mode :指明权限
owner :指明所有者
content :直接写出内容,并将其复制给远程主机
示例:
复制本地文件到远端主机
[root@test01 ~]# ansible all -m copy -a "src=/tmp/filebeat.yml dest=/tmp/ owner=ansible mode=600"
10.124.59.209 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "203e1c00bc853d638e8c00eaa4015be17ae26900",
"dest": "/tmp/filebeat.yml",
"gid": 1016,
"group": "mgadmin",
"md5sum": "fb66b0662ccea6dd9148d50ed2cdbdb3",
"mode": "0600",
"owner": "ansible",
"size": 10386,
"src": "/home/ansible/.ansible/tmp/ansible-tmp-1628185005.83-13684-201530439549721/source",
"state": "file",
"uid": 1020
}
10.124.59.210 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "203e1c00bc853d638e8c00eaa4015be17ae26900",
"dest": "/tmp/filebeat.yml",
"gid": 1016,
"group": "mgadmin",
"md5sum": "fb66b0662ccea6dd9148d50ed2cdbdb3",
"mode": "0600",
"owner": "ansible",
"size": 10386,
"src": "/home/ansible/.ansible/tmp/ansible-tmp-1628185005.82-13680-7844302613885/source",
"state": "file",
"uid": 1020
}
...省略
- fetch:从远端主机获取文件到本地
用法:
src=远端主机上的文件。
dest=保存文件的目录
示例
[root@test01 tmp]# ansible 10.124.59.83 -m fetch -a "dest=/tmp src=/tmp/filebeat.yml"
10.124.59.83 | CHANGED => {
"changed": true,
"checksum": "203e1c00bc853d638e8c00eaa4015be17ae26900",
"dest": "/tmp/10.124.59.83/tmp/filebeat.yml",
"md5sum": "fb66b0662ccea6dd9148d50ed2cdbdb3",
"remote_checksum": "203e1c00bc853d638e8c00eaa4015be17ae26900",
"remote_md5sum": null
}
注意:获取的文件存放路径为dest_dir/IP|address/src_file
以上就是几个经常使用的命令,另外一些少用的模块,需要的时候到官网或使用ansible-doc查看帮助即可。
- 官方文档:https://docs.ansible.com/
- ansible-doc查看模块帮助信息的工具
Ansible-doc用来查询ansible模块文档的说明,类似于man命令,针对每个模块都有详细的用法说明及应用案例介绍,语法如下:
ansible-doc [options] [module……]
-l用来列出可使用的模块,
-s用来列出某个模块的描述信息和使用示例。
[root@test01 tmp]# ansible-doc -s command
- name: Execute commands on targets
command:
argv: # Passes the command as a list rather than a string. Use `argv' to avoid quoting values that would otherwise be interpreted incorrectly (for example "user name"). Only the string or the
list form can be provided, not both. One or the other must be provided.
chdir: # Change into this directory before running the command.
cmd: # The command to run.
creates: # A filename or (since 2.0) glob pattern. If it already exists, this step *won't* be run.
free_form: # The command module takes a free form command to run. There is no actual parameter named 'free form'.
removes: # A filename or (since 2.0) glob pattern. If it already exists, this step *will* be run.
stdin: # Set the stdin of the command directly to the specified value.
stdin_add_newline: # If set to `yes', append a newline to stdin data.
strip_empty_ends: # Strip empty lines from the end of stdout/stderr in result.
warn: # Enable or disable task warnings.
---- 钢铁 648403020@qq.com 2021.08.06
参考文献
http://blog.itpub.net/29785807/viewspace-2700983/
https://www.huaweicloud.com/articles/cd442ec1b8aca5208f04555385362147.html
centos ansible常用命令的更多相关文章
- CentOS最常用命令及快捷键整理
CentOS最常用命令及快捷键整理 整理了Linux常用命令及快捷键. 常用命令: 文件和目录: # cd /home 进入 '/home' 目录 # ...
- centos的常用命令
公司服务器主要是centos,第一篇就从centos的常用命令开始吧. 转载自:http://www.cnblogs.com/zitsing/archive/2012/05/02/2479009.ht ...
- ansible常用命令
一.ansible常用命令 一.ansible命令的常用参数 ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansib ...
- CentOS 7 常用命令大全
CentOS7 常用命令集合 这两天一直在对CentOS 7.2进行初体验,各种学习命令肿么用,不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样,毕竟这些都不是一家出来的嘛~ 废话不多说 ...
- (转帖)CentOS最常用命令及快捷键整理
原文:http://www.centoscn.com/CentOS/help/2014/0306/2493.html 最近开始学Linux,在VMware Player中安装了CentOS 6.4.为 ...
- linux rhel unix centos FreeBSD 常用命令
一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /pr ...
- CentOS最常用命令
快捷键.常用命令: 文件和目录:# cd /home 进入 '/home' 目录# cd .. 返回上一级目录# cd ../.. 返回上两级目录# cd - 返回上次所在目录# cp file1 f ...
- CentOS 7 常用命令大全(转)
博主最近疯狂迷恋上linux的centos 7 系统,特意从网上找了一篇centos 7的命令大全来学习,下面我分享下这个博客. 转载自:https://blog.csdn.net/o0darknes ...
- CentOS 7常用命令
常用命令 文件与目录操作 命令 解析 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在目录 cp file1 file ...
随机推荐
- XML从入门到深入(超详细)
一:什么是XML XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,简称XML.是一种用于标记电子文件使其具有结构性的标记语言. XML可以标记 ...
- Golang学习(用代码来学习) - 第四篇
/** 一个用来进行go routine的函数 */ func print_something(msg string){ for i:= 0;i < 5;i++{ time.Sleep(1 * ...
- 单臂路由&链路捆绑
单臂路由&链路捆绑 目录 一.单臂路由 1.1.单臂路由作用 1.2.单臂路由实现不同VLAN间通信的原理 二.单臂路由相关命令配置 三.链路捆绑 3.1.以太网链路聚合原理 3.2.命令配置 ...
- AI框架中图层IR的分析
摘要:本文重点分析一下AI框架对IR有什么特殊的需求.业界有什么样的方案以及MindSpore的一些思考. 本文分享自华为云社区<MindSpore技术专栏 | AI框架中图层IR的分析> ...
- App免责声明
一切移动客户端用户在下载并浏览xxxAPP软件时均被视为已经仔细阅读本条款并完全同意.凡以任何方式使用本APP,或直接.间接使用本APP资料者,均被视为自愿接受本网页相关声明和用户服务协议的约束. x ...
- Kubernetes的亲和性和反亲和性
节点亲缘性规则可以影响pod被调度到哪个节点.但是,这些规则只影响了pod和节点之间的亲缘性.然而,有些时候也希望能有能力指定pod自身之间的亲缘性. 举例来说,想象一下有一个前端pod和一个后端po ...
- Java基础篇(JVM)——类加载机制
这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量 ...
- 万字长文肝Git--全流程知识点包您满意【建议收藏】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将首先介绍在本地搭建GitLab服务,然后重点介绍Git的常用命令,Git的核心概念以及冲突处理,最后介绍Git与SVN的区别 干货满满,建议 ...
- mongodb主从复制(读写分离)
1.[启动主服务器]mongod --port 1111 --dbpath D:\Program Files\Mongodb\master --logpath D:\Program Files\Mon ...
- python08篇 发邮件和异常处理
一.发邮件 import yamail smtp = yamail.SMTP(host='smtp.qq.com', # 改成自己邮箱的服务器即可,其他的比如smtp.163.com user='65 ...