Ansible 入门:从安装到基本操作 (ansible)
简介
Ansible 是一个开源的自动化工具,用于管理和配置服务器和网络设备。它基于 Python 语言,使用 YAML 文件作为配置文件,并且通过 SSH 协议与目标设备建立连接。安装
Linux
使用以下命令安装 Ansible:```sudo apt-get install ansible```macOS
使用以下命令安装 Ansible:```brew install ansible```Windows
使用以下命令安装 Ansible:1. 从 Ansible 官网下载 Windows 安装程序。2. 运行安装程序并选择 "Python 3" 作为 Python 版本。3. 完成安装后,将 Ansible 添加到系统 PATH 环境变量中。创建配置文件
配置文件用于定义要执行的任务和目标设备。创建一个名为 `main.yml` 的 YAML 文件,其中包含以下内容:```---- hosts: alltasks:- name: 更新系统yum:name: ''state: latest````- hosts: all` 指定要管理的所有目标设备。`- tasks:` 定义要执行的任务列表。`- name: 更新系统` 指定任务的名称。`yum:` 指定要使用的 Ansible 模块。`name: ''` 指定要更新的所有软件包。`state: latest` 指定要更新到最新版本。运行 Ansible
要运行 Ansible,请使用以下命令:```ansible-playbook main.yml```Ansible 将连接到目标设备并执行指定的任务。基本操作
模块Ansible 模块是用于执行特定任务的代码块。安装 Ansible 后,可以访问许多模块。可以使用以下命令查看可用模块:```ansible-doc -l```库存Ansible 库存是目标设备列表及其连接详细信息。可以手动创建库存文件,也可以使用动态库存。剧本Ansible 剧本是复杂任务的集合,可以按顺序执行。剧本通常用于部署应用程序、配置网络或执行其他管理任务。回调Ansible 回调是在任务执行过程中或执行后调用的函数。回调可以用于日志记录、通知或其他目的。示例
以下示例展示了如何使用 Ansible 安装 Nginx:```---- hosts: alltasks:- name: 安装 Nginxapt:name: nginxstate: present- name: 启动 Nginxservice:name: nginxstate: started```练习1. 安装 Ansible 并创建一个名为 `main.yml` 的配置文件。2. 在配置文件中添加一个任务,用于更新 Linux 服务器上的所有软件包。3. 运行 Ansible 以执行任务并更新服务器。4. 创建一个新配置文件,用于安装 Nginx 并启动服务。5. 运行 Ansible 以执行任务并安装 Nginx。结论
Ansible 是一个强大的自动化工具,用于管理和配置服务器和网络设备。本文介绍了 Ansible 的基本概念和操作,并提供了示例以帮助你入门。ansible的使用和安装
一、ansible入门 1.介绍Ansible是一种IT自动化工具。 它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。 Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境。 Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构。 具备以下三个特点: 2、组成 1.连接插件connection plugins用于连接主机 用来连接管理端 2.核心模块core modules连接主机实现操作, 它依赖于具体的模块来做具体的事情 3.自定义模块custom modules根据自己的需求编写具体的模块 4.插件plugins完成模块功能的补充 5.剧本playbookansible的配置文件,将多个任务定义在剧本中,由ansible自动执行 6.主机清单inventor定义ansible需要操作主机的范围 最重要的一点是 ansible是模块化的 它所有的操作都依赖于模块 3、执行流程 读取playbook剧本,剧本中会记录对哪些主机执行哪些任务。 2.首先Ansible通过主机清单找到要执行的主机,然后调用具体的模块。 3.其次Ansible会通过连接插件连接对应的主机并推送对应的任务列表。 4.最后被管理的主机会将Ansible发送过来的任务解析为本地Shell命令执行。 二、ansible安装 三、主机清单配置 1.基于密码 2.基于密钥 四、主机分类 五、测试
ansible使用
Ansible使用/etc/ansible/ 主配置文件 ansible的配置文件 /etc/ansible/hosts Inventory 要远程控制的主机列表 /usr/bin/ansible-doc 帮助文件 /usr/bin/ansible-playbook 指定运行任务文件 默认: /etc/ansible/hosts inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成。 参考解释例子ansible_ssh_host将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置_ssh_host=192.169.1.123ansible_ssh_portssh端口号.如果不是默认的端口号,通过此变量设置_ssh_port=5000ansible_ssh_user默认的 ssh 用户名ansible_ssh_user=cxpadminansible_ssh_passssh 密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)ansible_ssh_pass=’’ ansible2.0,ansible_ssh_user, ansible_ssh_host, ansible_ssh_port已经改变为ansible_user, ansible_host, ansible_port。 具体参考官网常见的模块及使用参考: ansible基本使用教程 - 陈小跑 - 博客园 命令行方式一次只能执行单条命令,如果命令量较多,可以使用playbook的方式。 playbook使用yaml格式编写。 组成结构如下: 举例如下: 使用参考:msg: Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this hosts fingerprint to your known_hosts file to manage this host. 通常情况下,通过&指定的后台任务在终端退出后会自动退出执行。 一般来说,加上nohup即可在后台一直执行。 但在使用ansible时,发现 ansible all -m shell -a nohup cmd & 命令无法在后台一直执行。 后来想了个办法,将命令写入脚本,然后通过执行脚本来实现。 脚本内容为 ansible命令为 ansible all -m script -a bash 。 sleep的原因是退出太快可能脚本没跑起来就退出了。
ansible使用笔记(二)常用命令使用及常用模块简介
目录 一、常用命令使用 二、双引号 单引号 对执行结果的影响 三、ansible-console工具 四、ansible常用模块
一、常用命令使用 前面有提到过ansible的常用的命令和使用 列出要执行主机 ansible all --list-hosts 批量检测主机 ansible all -m ping -k ansible主机集合 -m 模块名称 -a 模块参数 主机集合 主机名或分组名,多个使用逗号分隔 -m 模块名称,默认command模块 -a or --args模块参数 其它参数 -i inventory文件路径,或可执行脚本 -k 使用交互式登陆密码 -e 定义变量 -v 显示详细信息
二、双引号 单引号 对执行结果的影响 执行以下命令来查看ansible的执行结果 1)shell ansibleweb-m shell -a echo ${HOSTNAME} ansibleweb-m shell -a echo ${HOSTNAME} 2)创建的文件在哪查看 ansiblecache-m shell -a cd /tmp ansiblecache-m shell -a touchtestfile
注: 1)变量解析 双引号 与单引号使用区别 ansible 执行命令是二次解析,第一次在本机解析, 第二次在执行机器解析,需要第二次解析的变量要转移 总结:参数默认使用 号就对了
2)创建的文件在哪里 文件在用户家目录,ansible 是使用 ssh 多次连接执行,连接退出以后之前的状态就全部失效了 解决方法:使用 chdir 代替 cd 命令 ansible cache -m shell -a chdir=/tmp touch testfile
三、ansible-console工具 是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来的终端出来的终端上像shell一样使用ansible内置的各种命令,这为习惯使用shell交互方式的用户提供了良好的使用体验
四、ansible常用模块 4.1 )ansible-doc和ping模块 ansible-doc模块手册 模块的手册相当于shell的man,很重要
ping模块 测试网络连通性,ping模块没有参数 注:测试ssh连通性
4.2 ) command模块 默认模块,远程执行命令 用法
command模块注意事项: 该模块通过-a跟上要执行的命令可以直接执行,若命令里有如下字符则执行不成功 < > | & command模块不能解析系统变量 该模块不启动shell直接在ssh进程中执行,所有使用到shell的命令执行都会失败
查看所有机器负载
4.3 )shell模块 shell模块用法基本和command一样,区别是shell模块是通过/bin/sh进行执行命令,可以执行任意命令 不能执行交互式的命令,例如 vim top等
4.4 ) script模块 命令太复杂? 在本地写脚本,然后使用script模块指量执行 ansible web -m script -a urscript 注意:该脚本包含但不限于shell脚本,只要指定sha-bang解释器的脚本都可运行
案例: 给所有web主机添加用户wk 1.要求by用户与wk用户不能出现在同一台主机上 2.设置wk用户的密码是456
4.5 ) yum模块 使用yum包管理器来管理软件包 name:要进行操作的软件包名字 state:动作(installed安装、removed删除)
4.6 ) service模块 name:必须项,服务名称 enabled:是否开机启动yes|no sleep:执行restarted,会在stop和start之间沉睡几秒钟 state:对当时服务执行启动、停止、重启中、重新加载等操作(started,stopped,restarted,reloaded) 案例: 1.给db组安装mariadb 2.开启mariadb服务并设置开机启动
4.7 ) copy模块 复制文件到远程主机 src:复制本地文件到远程主机,绝对路径和相对路径都可以,路径为目录时会递归复制,若路径以/结尾,只复制目录里的内容,若不以/结尾,则复制包含目录在内的整个内容,类似于rsync dest:必须项,远程主机的绝对路径,如果源文件是一个目录,那该路径必须是目录 backup:覆盖前先备份原文件,备份文件包含时间信息,有两个选项:yes|no force:若目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,设为no,则只有当目标主机的目标位置不存在该文件时才复制,默认为yes 案例: 拷到本机/etc/ 文件到所有拖管主机 并对原文件备份 给所有 db 主机开启 binlog 日志
4.8 ) lineinfile模块 replace模块 类似sed的一种行编辑替换模块 path 目标文件文件 regexp 正则表达式,要修改的行 line 最终修改的结果
replace模块 类似sed的一种行编辑替换模块 path 目标文件文件 regexp 正则表达式,要修改的行 replace 替换后的结果
lineinfile模块与 replace模块区别 lineinfile模块 是修改某个文件的单行并进行替换 replace模块 是修改某个文件的所有匹配行并进行替换
4.9 ) setup模块 主要用于获取主机信息,playbooks里经常会用的另一个参数gather_facts与该模块相关,setup模块下经常用的是filter参数
filter过滤所需信息
执行以下命令可查看包含的所有信息,可大致浏览一遍,包含的信息, 需要注意的是filter过滤条件必须以信息中模块名为过滤条件模块中详细信息不能为过滤条件
若对本页面资源感兴趣,请点击下方或右方图片,注册登录后
搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源
如有其他疑问,请咨询右下角【在线客服】,谢谢支持!
相关文章
- 赋能你的营销活动:免费海报制作工具,助力成功 (赋能你的营销是什么)
- 释放你的艺术才能:免费在线海报设计平台 (释放你的艺术是什么歌)
- 告别枯燥!免费在线海报制作,让创意飞扬 (告别干燥)
- 通过公司的宣传片建立强有力的品牌身份 (宣传自己的公司)
- 让您的宣传片与众不同:定制化公司宣传片制作服务 (让您的宣传片更加热烈)
- 成为行业领军者:制作高品质的公司宣传片以建立信誉 (成为行业领军者)
- 向成功迈进:使用公司宣传片推动业务增长 (向成功迈进一步的句子)
- 激发情感联系:通过公司宣传片与您的客户产生共鸣 (激发情感联系的成语)
- 用视觉叙事讲述您的品牌故事:有效的公司宣传片制作策略 (用视觉叙事讲故事作文)
- 吸引目标受众的秘诀:创意且引人入胜的公司宣传片 (吸引目标受众的内容选题)
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~