Ansible基本使用和常用模块

这篇具有很好参考价值的文章主要介绍了Ansible基本使用和常用模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1) 部署
yum install -y ansible
2) 配置
#修改配置文件关闭主机Host_key_checking 
#修改配置文件开启日志功能

[root@m01 ~]# egrep -vn '^$|#'
/etc/ansible/ansible.cfg
10:[defaults]
71:host_key_checking = False
111:log_path = /var/log/ansible.log
327:[inventory]
340:[privilege_escalation]
346:[paramiko_connection]
370:[ssh_connection]
431:[persistent_connection]
445:[accelerate]
460:[selinux]
469:[colors]
485:[diff]
3) Ans-inventory 主机清单
a.什么是主机清单 : ansible 管理的节点的列表,ansible 默认读取在 /etc/ansible/hosts 文件 ,并非 /etc/hosts.
b.我们会把主机清单文件存放在指定的目录中 , 运行 ansible 的时候通过 -i 选项指定主机清单文件即
Ansible基本使用和常用模块,ansible
4)  批量管理主机并执行shell命令
#主机清单格式:
#[分类或分组的名字]    #注意分类要体现出服务器的作用
#ip地址或主机名或域名   #注意主机名要能解析才行

[root@m01 ~]# cat /etc/ansible/hosts
[web]
172.16.1.7
#172.16.1.8
[backup]
172.16.1.41
[nfs]
172.16.1.31


[root@m01 ~]# #hostname
[root@m01 ~]#
[root@m01 ~]# ansible all -m command -a "hostname"
172.16.1.7 | CHANGED | rc=0 >>
web01
172.16.1.41 | CHANGED | rc=0 >>
backup
172.16.1.31 | CHANGED | rc=0 >>
nfs01


主机清单分组详解:
需要我们进行分组:按照层次进行分组,按照功能/业务.

ansible命令格式
ansible 主机ip或分组或all -m 指定使用的模块名字 -a 模块中的参数
command 模块是ansible默认的模块可以不写.

5)常用模块文章来源地址https://www.toymoban.com/news/detail-803460.html

# command模块 ans默认的模块,执行简单命令,不支持特殊符号
案例01:批量获取所有主机的主机名
批量执行hostname命令
ansible all -m command -a 'ip a s eth0'
ansible all -a 'ip a s eth0'

#shell模块
#与command模块类似,但是shell支持特殊符号
#批量获取ip地址
ansible all -m shell -a "ip a s eth0 |awk -F'[ /]+' 'NR==3{print \$3}'"

#script模块
#执行流程:分发脚本(传输脚本),在被管理端运行脚本
# 批量执行脚本获取主机信息
ansible all -m script -a '/server/scripts/ansible-scripts.sh'

#file模块
#file模块不仅可以管理文件,还可以管理目录,管理软连接.
#file模块相当于把touch命令,mkdir命令,rm命令,ln -s命令,chown,chmod结合在一起了.
#1.创建/opt/lidao.txt
ansible all -m file -a 'path=/opt/lidao.txt state=touch
#2.创建目录/app/
ansible all -m file -a 'path=/app/a/b/c/d/e/g/ state=directory '
#3.创建软连接 /etc/hosts创建软连接到/opt/下
ln -s /etc/hosts /opt/hosts ansible all -m file -a ' src=/etc/hosts state=link '

#copy模块
#批量分发:scp,1个节点(管理节点)发送文件或压缩包到所有被管理端. 注意:copy是单向的传输.
# 分发书写好的/etc/hosts文件,如果文件存在则备份下
ansible all -m copy -a 'src=/etc/hosts dest=/etc/hosts backup=yes'


#服务管理-systemd
#systemd模块相当于是linux systemctl命令:
#启动服务
ansible all -m systemd -a 'name=crond
enabled=yes state=started'
#关闭服务
ansible all -m systemd -a 'name=firewalld
enabled=no state=stopped'
#重启ssh
ansible all -m systemd -a 'name=sshd
state=reloaded/restarted'

# yum模块
#yum模块并不只是yum命令,包含了yum/apt命令
#安装常用的软件htop,tree,lrzsz,sshpass
ansible all -m yum -a 'name=htop,tree,lrzsz sshpass '

#user模块
#创建www-ans用户uid 2000虚拟用户
ansible all -m user -a 'name=www-ans uid=2000 shell=/sbin/nologin create_home=no state=present'

#cron模块
#作用:用于管理系统的定时任务.替代了crontab -e功能
# 每3分钟同步时间
ansible all -m cron -a 'name="sync time by ggb" minute="*/3" job="/sbin/ntpdate
ntp1.aliyun.com &>/dev/null" state=present'

到了这里,关于Ansible基本使用和常用模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ansible常用文件模块

    blockinfile:         插入、更新或删除由可定义标记包围的多行文本块 lineinfile:         确保特定行位于指定文件中,反向使用正则表达式替换行。 copy:         将本地或远程主机文件复制到受管主机的指定位置,可以设置文件属性,SELinux上下文。 fetch:         与copy相

    2023年04月19日
    浏览(25)
  • 认识ansible,了解常用的模块

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月21日
    浏览(25)
  • Ansible命令格式和常用模块介绍

    ansible [群组名] -m [模块名] -a [参数] command模块为默认模块,用于远程执行命令(命令模块) 使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行命令中的含\\\"\\\",\\\"\\\",\\\"|\\\",\\\"\\\"等特殊符号时,这些符号功能会失效 常用参数: command模块

    2024年01月19日
    浏览(29)
  • Ansible自定义静态资产以及常用模块

    文件文件,一个格式类似于INI的文件 默认情况下,Ansible的资产文件位于/etc/ansible/host,如果使用pip安装的则可能没有这文件,可以自己创建。 1、自定义资产 #自定义编写inventory.ini文件   1.2如何使用自定义资产 通过-i 参数指定自定义资产的位置即可(可以是全路径,也可以

    2024年02月08日
    浏览(40)
  • Ansible操作MySQL常用的几个模块

    mysql_user模块用来添加,删除用户以及设置用户权限 创建MySQL数据库的用户与口令(非root@localhost用户),直接通过playbooks中的案例来说明吧。 说明,这个案例中,有提到常见的错误,例如有关login_unix_socket参数不设置,可能导致的错误。 补充:假如各个DB的期望赋予的权限不

    2024年02月06日
    浏览(29)
  • [自动化运维工具] Ansible的简单介绍与常用模块详解

    自动化运维工具,也叫 机器管理工具 。 可以实现 批量管理多台(成百上千)主机 ,是应用级别的 跨主机编排工具 。 无客户端agent存在,不需要在被控制的节点上安装额外的客户端应用 通过 ssh协议 与被控制节点通信 基于模块工作的,可以通过模块实现在被控制节点上执

    2024年02月05日
    浏览(72)
  • Ansible Rsync 使用Ansible Rsync模块进行文件传输

    在Ansible自动化工具中,Rsync模块(Rsync Module)是一个强大的组件,用于在Ansible控制节点和目标主机之间进行文件传输和同步。本文将深入探讨Ansible Rsync模块,了解它如何成为自动化任务中高效同步的自动化利器。 Ansible Rsync模块是Ansible的核心模块之一,它利用rsync工具进行文

    2024年02月14日
    浏览(34)
  • ansible剧本模式特殊模块使用

    Nginx安装剧本 vim /etc/ansible/hosts  vim /etc/ansible/playbook/default.conf.j2  vim /etc/ansible/test_nginx.yaml ​​​​​​​   检查一下是否有语法错误 ansible-playbook /etc/ansible/test_nginx.yaml ansible-playbook test1.yaml //补充参数 -k(-ask-pass):用来交互输入ssh密码 -K(-ask-become-pass):用来交互输入

    2024年02月09日
    浏览(35)
  • ansible 基本使用

       ansible是一种IT自动化工具。可以配置系统、部署软件以及协调高级的IT任务,如持续部署、滚动更新。   使用文档: https://docs.ansible.com/    安装Ansible:yum install ansible -y     Invertory: ansible 管理的主机信息,包括ip、ssh端口、账号、密码等    modules: 任务都有模块来完成

    2023年04月16日
    浏览(20)
  • 理解和使用Ansible模块,简化自动化任务

    Ansible是一款强大的自动化工具,用于管理和配置IT基础设施。在Ansible的世界中,模块(Module)是至关重要的组成部分。本文将深入探讨Ansible模块,了解它们如何简化自动化任务的执行过程。 Ansible模块是Ansible的核心组件之一,用于在目标主机上执行特定的操作。模块可以是

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包