【非原创关于ansible的一些学习资料的整理

网友投稿 779 2022-05-29

一、前言

先介绍几个中文版的文档吧,先上链接

https://ansible-tran.readthedocs.io/en/latest/docs/intro_installation.html

http://www.ansible.com.cn/docs/intro_getting_started.html

以上两个链接内容一模一样,但是第一个提供了各种格式的下载,第二个没有提供下载,好像是马哥的团队出品的,偶尔会弹出广告

http://getansible.com/

二、安装

看上面文档吧,略过

三、ansible一些常用的模块

主要是为了记录一些常用的模块才写的这个文档,下面开始将我觉得比较常用的文档记录下来。

ansible all -m “module”

1、command模块

* 这个模块不支持一些特殊字符比如:`<', `>', `|'等,所以如果想用这个可以使用接下来介绍的shell模块

* windows下“command/shell”模块都不能使用,只能使用“win_command”模块

* 如果要重启系统,只能使用reboot模块和win_reboot模块

* 在远程机器上执行本地的脚本,可以使用scripts模块

* 好像ansible的模块,不管是shell还是command,都不能使用“tail -f”或者“top”这样的命令

示例:

ansible all -m command -a "cat /etc/passwd"

ansible all -m command -a "ls /root/ -la"

ansible all -m command -a "/usr/bin/make_database.sh arg1 arg2 creates=/path/to/database" #这个creates 是在执行命令的时候判断这个目录是否存在,如果不存在就不继续往下执行了

2、shell模块

*有一些和command不一样的地方,有一些比command好的地方,比如支持管道符、重定向符号等

示例:

ansible all -m shell -a "mkdir /root/testansible/testdir chdir=/root/testansible"#chdir 意思是先进入目录然后再执行命令

ansible all -m shell -a "mkdir /root/testansible/testdir creates=/root/testansible/testdir"#creates意思是先filename是否存在,如果存在则不执行命令

ansible all -m shell -a "echo "testword" >> /root/testansible/testdir removes=/root/testansible/testdir"#removes意思是如果不存在,则不执行

如果在ansible-playbook中使用,则应该这么写了

shell: echo "testword" >> /root/testansible/testdir

args:

chdir: /root/testansible

creates: somelog.txt

3、yum模块

这个模块很显然是在红帽系列的linux系统中进行包管理的模块

先介绍下个人觉得比较常用的模块参数:

update_cache:类似于yum clean all &&yum makecache命令,可选值为:yes/no,默认no

state:包的最终需要的状态,present/latest 是安装包/最新的版的包,absent用于删除包

list:列出包,可选值为:`installed', `updates', `available' and `repos'

download_only:下载包,只下载不安装

download_dir:下载包的目录

示例:

ansible -m yum -a "name=httpd,state=latest"#安装包

ansible -m yum -a "name=httpd,state=absent"#移除包

ansible -m yum -a "name=httpd-2.2.29-1.4.amzn1,state=present"#安装指定版本的包(还可以在name处写上包所在的绝对路径安装本地的包)

ansible -m yum -a "name=*,state=latest" #升级所有包

4、apt模块

这个模块的使用和yum很像,毕竟都是包管理软件,apt模块是管理ubuntu的包管理软件

比较常用的模块参数:

update_cache:可选值:yes/no,默认为no,如果为yes则类似于命令apt update

upgrage:可选值为:yes/safe/full/dist,默认为yes,如果为yes/safe则类似于命令:apt upgrade

deb:后面接远程主机的deb包的绝对路径

【非原创】关于ansible的一些学习资料的整理

示例:

ansible -m apt -a "name=httpd , state=present"

ansible -m apt -a "name=httpd , state=latest"

ansible -m apt -a "name=httpd=2.2.29 , state=present"#安装指定版本的httpd

5、copy模块和fetch模块

copy模块的作用是将ansible执行主机的文件拷贝到远程节点上,fetch模块的作用是将远程节点上的文件拷贝到ansible执行主机上;

比较常用的模块参数:

src:源文件(目录)的路径,绝对路径,如果路径加“/”,则将目录下的文件copy,如果不加则将此目录copy

dest:目的文件(目录)路径,如果src是文件夹,这个就必须是文件夹了

backup:是否备份,默认no,可选参数“yes/no”

follow:文件夹的link也会copy过去

owner/group/mode:一些权限相关配置

示例:

ansible all -m copy -a "src=/tmp/tmpfile dest=/root/tmpfile.sh backup=yes owner=zhangsan group=zhangsan mode=0644"

Shell

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【前端】HTML
下一篇:HetuEngine运维管理实践-通过restAPI接口实现计算实例和数据源管理(一)
相关文章