Ansible

文章介绍了Ansible作为自动化运维工具的基本用法,包括安装、SSH无密码登录配置、主机清单创建、不同类型的模块(如文件、软件包、系统、NetTools)及其功能,以及如何通过命令运行Ansible任务。

简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

以下实验由2台主机进行测试,其中一台node1作为管理机(老板),另外node2作为被管主机(员工)

node1:192.168.20.222/24

node2:192.168.20.223/24

1、安装ansible使用yum install命令安装,先安装epel-release源再安装ansible

$ yum -y install epel-release    //安装epel-release源,安装后会产生新repo配置文件
$ yum -y install ansible         //安装ansible
$ yum list installed |grep ansible    //查看是否已安装成功
$ ansible --version               //验证是否安装成功,查看ansible的版本

2、配置SSH无密钥登陆

配置SSH无密码便当需要三步:
1)在控制端主机上生成一对密钥
[root@node1 .ssh]# ssh-keygen-t rsa
2)将公钥下发给远程被管理的主机192.168.20.223
[root@node1 .ssh]#ssh-copy-id root@192.168.20.223
3)保管私钥,使用ssh-add命令将私钥交给被管理的主机192.168.20.223管理
# ssh-add .ssh/id_rsa
4)验证配置是否成功
 #  ssh 192.168.20.223
此时在管理机器上再次连接客户端机器,就无需输入账号和密码了,可以尝试使用ansible命令进行连接

3、创建主机清单

主机目录(Host Inventory,又称主机清单)保存了Ansible所管理的远程主机的信息,以及一些连接参数,也可用于对远程主机进行分类。其默认配置文件是/etc/ansible/hosts

[root@node1 .ssh]# cat /etc/ansible/hosts
[server1]
192.168.20.223
192.168.20.224

4、Ansible模块

4.1文件模块:

copy:将本地文件复制到受控主机

file:创建或者和删除远程主机上的文件或者目录

lineinfile:替换文件中的内容,添加内容到指定文件位置

synchronize:使用rsync同步内容

4.2软件包模块

package:使用操作系统本机的自动检测软件包管理器管理软件包

yum:使用yum软件包管理器管理软件包

apt:使用apt软件包管理器管理软件包

dnf:使用dnf软件包管理器管理软件包

pip:从PyPI管理Python软件包

4.3系统模块

firewalld:使用firewalld管理任意端口和服务

reboot:重新启动计算机

service:管理服务

user:添加、删除和管理用户账户

4.4Net Tools模块

get_url:通过http、https或者ftp下载文件

nmcli:管理网络

uri:与WEB服务交互

5、ansible命令运行方式及常用参数

格式: ansible 主机清单 -m 模块 -a 模块参数

示例1:使用user模块来在主机node2上创建用户newbie,其UID设置为4000

[root@localhost ~]#ansible server1 -m user -a 'name=newbie uid=4000 state=present'

注:server1为主机清单中组名称,user为模块名,-a 后面为模块名指定 的参数

示例2:使用copy模块将源文件拷贝到被控端的相应的目录

[root@localhost ~]#ansible server1 -m copy -a 'src=/etc/fstab dest=/var/tmp/fstab'

6、常用模块详解可参考下面的文章:

https://blog.youkuaiyun.com/qq_34646546/article/details/86606408

09-17
### 关于 Ansible 的下载安装与使用教程 #### 一、Ansible 基础概念 Ansible 是一种简单而强大的 IT 自动化工具,用于配置管理、应用程序部署以及任务编排。它的设计原则是基于无代理架构(Agentless),即不需要在被控节点上安装任何软件。 - **Inventory 文件**: 这是一个包含受控服务器信息的文件,默认路径位于 `/etc/ansible/hosts`[^1]。该文件定义了主机列表及其分组方式。 #### 二、Ansible 的安装方法 以下是 Ansible 在 Linux 和 macOS 上的标准安装步骤: 对于 Ubuntu 系统: ```bash sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible ``` 对于 CentOS/RHEL 系统: ```bash sudo yum install epel-release sudo yum install ansible ``` macOS 用户可以借助 Homebrew 工具完成安装: ```bash brew install ansible ``` 验证安装成功与否可以通过以下命令检查版本号: ```bash ansible --version ``` #### 三、Ansible 的基本用法 ##### 1. 执行 Ad-Hoc 命令 Ad-Hoc 模式允许用户快速向远程主机发送单条指令并获取反馈。例如,查看目标主机上的 `~` 目录结构时可执行如下命令[^2]: ```bash ansible webserver -i ~/.ansible/hosts -m command -a 'ls ~' -k ``` 其中 `-k` 参数表示提示输入 SSH 密码而非依赖密钥认证。 ##### 2. 配置 Inventory 文件 默认情况下,Ansible 使用 `/etc/ansible/hosts` 作为 inventory 文件位置。如果需要指定自定义路径,则可通过 `-i` 参数实现。例如: ```ini [webserver] 192.168.1.10 ansible_user=root ``` ##### 3. Playbooks 编写入门 Playbook 是一组 YAML 格式的剧本脚本,用来描述一系列复杂操作序列。下面是一份最简化的 playbook 示例[^4]: ```yaml --- - name: Update all servers and reboot them hosts: webservers become: yes tasks: - name: Ensure system is up to date package: name: "*" state: latest - name: Reboot server after updates are installed reboot: ``` #### 四、跨平台支持——Windows 环境下的 Ansible 应用 尽管传统意义上 Ansible 更倾向于 Unix/Linux 平台的操作,但它同样具备良好的 Windows 支持能力。这主要得益于由社区开发者 jborean93 维护的一套专门针对 Microsoft 技术栈优化过的插件集合[^3]。这些组件让运维人员得以利用 PowerShell 脚本或者 WinRM 协议无缝衔接至企业内部混合云场景之中。 #### 五、容器集成解决方案-Ansible Bender 随着 DevOps 文化日益普及,越来越多的企业开始关注 CI/CD 流程中的镜像构建环节。为此官方推荐了一款名为 "Ansible Bender" 的第三方扩展程序[^5]。它允许使用者仅需编写一份声明性的 YAML 描述文档就能全自动完成 Dockerfile 替代工作流的设计思路。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值