Ansible:模块2

2023-12-20 19:11:19

1,command模块

一般用于执行linux的命令,不支持管道符和重定向。

2,shell模块 相当于command的升级版,也可以执行linux命令,支持管道符和重定向

3,cron 模块 在远程主机生成定时任务

分 时 日 月 周

minute hour day mouth weekday job=执行的命令

name要加

4,user模块:

远程管理用户的模块,创建用户

system=yes | no

声明是普通还是系统用户

yes程序用户

no普通用户

登录的shell还是需要用户自己声明。

remove=yes | no

生成用户时是否生成家目录。

userdel -r

password,创建密码

5,group模块,创建用户组

6,ping模块测试和远程主机的连通性。

只有在/etc/absible/hosts文件当中声明的主机,ansible的服务端才可以进行远程操作。

7,hostname模块

改主机名

ansible 192.168.176.50 -m hostname -a 'name=test2'

8,copy 模块:

用于复制指定的主机文件到远程主机的模块

常用参数:

dest:指出要复制的文件在哪,必须使用绝对路径。如果源目标是目录,指目标也得是目录。如果目标的文件存在,会覆盖原有内容。

src:复制文件的源,最好使用绝对路径,源目标是目录,指目标也得是目录

owner:指出文件的所有者

group:指定文件的所在组

content:从主机复制指定的内容到目标主机,content就不能使用src了

mode:指定复制之后的文件的权限

ansible 192.168.176.50 -m copy -a 'src=/opt/123 dest=/opt/123.txt owner=guoqi mode=600'

练习:在日标主机创建- -个用户guoqi system-yes shell nologin, 复制文件ky32. txt,

isy32.txt所有者和所在组都是guoqi,权限是600.

ansible 192.168.176.50 -m copy -a 'src=/opt/ky32.txt dest=/opt/ky32.txt owner=guoqi group=guoqi mode=600'

ansible 192.168.176.50 -m copy -a 'src=/opt/guoqi/ dest=/opt/guoqi1/ mode=777'

复制目录时,还是复制完整的目录,即目录当中不能为空。目录里面要有一个文件

指定要打印的内容

ansible 192.168.176.50 -m copy -a 'content="hello world!" dest=/opt/hello.txt'

ansible 192.168.176.50 -a 'cat /opt/hello.txt'

剪切:

ansible 192.168.176.50 -a 'mv /opt/hello.txt /opt/wangdefu.txt'

ansible 192.168.176.50 -a 'cat /opt/wangdefu.txt'

9,file模块 文件模块,跟目录无关

owner

group

mode

state=link 创建连接文件

state=touch 创建文件

state=directory 创建目录

state=absent 删除文件

ansible 192.168.176.50 -m file -a 'path=/opt/cc.txt state=touch'

#path=/opt/cc.txt:声明客户机的路径和文件名称

#state=touch:类型为创建文件

ansible 192.168.176.50 -m file -a 'owner=cc group=cc mode=777 path=/opt/cc.txt'

练习

file模块创建一个文件,ky32.txt 所有者和所在组cc 权限700

ansible 192.168.176.50 -m file -a 'path=/opt/ky32.txt state=touch'

ansible 192.168.176.50 -m file -a 'owner=cc group=cc mode=700 path=/opt/ky32.txt'

设置连接文件

设置软连接

ansible 192.168.176.50 -m file -a 'path=/opt/cc.txt.link src=/opt/cc.txt state=link'

练习:

给/etc/fstab创建一个软连接, 这个文件是主机/ opt/ fstab . bak复制过来的文件,复制的

文件/opt/fstab. bak在目标主机的/opt下,创建- -一个文件fstab. link作为fstab . bak的软连接。:

ansible 192.168.176.50 -m copy -a 'src=/etc/fstab dest=/opt/fstab.bak'

ansible 192.168.176.50 -m file -a 'path=/opt/fstab.bak.link src=/opt/fstab.bak state=link'

远程删除文件

ansible 192.168.176.50 -m file -a 'path=/opt/cc.txt.link state=absent'

也可以创建目录:

ansible 192.168.176.50 -m file -a 'path=/opt/chen state=directory'

10,yum模块

在远程主机上安装与卸载软件包

在目标主机上的操作都是后台运行,不影响其他用户的操作

安装

ansible 192.168.176.50 -m yum -a 'name=tree'

卸载:

ansible 192.168.176.50 -m yum -a 'name=tree state=absent'

练习:查询远程主机httpd的状态2、开启3、访问

启动不要使用service模块

ansible 192.168.176.50 -m yum -a 'name=httpd'

ansible 192.168.176.50 -a 'systemctl start httpd'

ansible 192.168.176.50 -m shell -a 'echo "this is httpd" > /var/www/html/index.html'

ansible 192.168.176.50 -a 'curl 192.168.176.50'

11,service/systemd 模块

state=started | stopped | restarted

enabled=true表示是否设置开机自启,如果不加,默认就是开机不自动启动。

runlevel:配合enabled的, 开机自启,可以设置运行级别。在命令行可用设置,但是不生效,要在playbook当中使用。

ansible 192.168.176.50 -m service -a 'enabled=true name=httpd state=restarted'

ansible webservers -m yum -a 'name=epel-release'

ansible webservers -m yum -a 'name=nginx'

ansible 192.168.176.50 -m service -a 'enabled=true name=nginx state=restarted'

ansible 192.168.176.50 -m shell -a 'echo "this is nginx" >/usr/share/nginx/html/index.html'

ansible 192.168.176.50 -a 'curl 192.168.176.50'

12,script 模块

运行本地脚本,然后把结果输出到目标主机

vim test.sh

echo "hello world" > /opt/test2.txt

chmod 777 test.sh

ansible all -m script -a 'test.sh'

ansible all -a 'cat /opt/test2.txt

vim test1.sh

ansible all -m script -a 'test1.sh'

ansible all -a 'cat /opt/123

作业

13,set up模块

set up查看目标主机的环境系统(facts),目标节点的系统信息。

不加条件会显示全部。

ansible 192.168.176.50 -m setup

常用组件

加上条件:根据模块名称来查。

IP地址:

ansible 192.168.176.50 -m setup -a 'filter=*ipv4*'

cpu:

ansible 192.168.176.50 -m setup -a 'filter=*ansible_processor'

查看内存

menory

ansible 192.168.176.50 -m setup -a 'filter=*mem*'

查看内核:

ansible 192.168.176.50 -m setup -a 'filter=*proc*'

查看系统信息:

ansible 192.168.176.50 -m setup -a 'filter=*os*'

ansible 192.168.176.50 -m setup -a 'filter=*system*'

查看硬盘:

ansible 192.168.176.50 -m setup -a 'filter=*dev*'

主机清单进行管理

快速的声明主机范围。

如何取消shh密钥对登录

ansible_host 连接时的ip地址

ansible_prot 声明对方的连接端口,默认是ssh的22端口

ansible_user 指定路径是使用对方主机的用户名,不指定主机执行ansible的用户即为使用目标主机的用户名。

ansible_password 指定连接sshs时的密码(目标主机的用户密码)

ansible_become 提升用户权限

ansible_become root

ansible_become_password 指定切换用户的密码。(免秘钥登录才可以实现。 )

71行取消注释

对所有webservers进行设置:

也可以对全部进行设置

组嵌套:

文章来源:https://blog.csdn.net/weixin_51694382/article/details/135090366
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。