Ansible自动化运维

1、Ansible概述。

        Ansible是近年越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为的失误。

        特点:

(1)基于Python开发,运维工程师对其二次开发相对较容易。

(2)丰富的内置模块,基本可以满足一切需求。

(3)管理模式非常简单,一条命令可以影响上千台机器。

(4)无客户端模式,底层通过SSH通信

2、Ansible的配置安装。

2.1、通过yum安装Ansible。

创建本地yum仓库,将提供的ansiblerepo文件夹上传至Linux本地目录

[root@node1 /]# ls -l
总用量 30
drwxr-xr-x    3 root root 8192 3月  14 15:15 ansiblerepo

修改yum源配置文件
[root@node1 /]# vim /etc/yum.repos.d/local.repo 

[dvd]
name=dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

[ansible]
name=ansible
baseurl=file:///ansiblerepo
enabled=1
gpgcheck=0

安装Ansible

[root@node1 ~]# yum -y install ansible

验证安装结果

[root@node1 ~]# ansible --version
ansible 2.3.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

2.2、创建SSH免交互登录。 

生成密钥对

[root@node1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   //密钥存放路径
Enter passphrase (empty for no passphrase):   //输入私钥保护密码,回车则表示无密码
Enter same passphrase again:   //再次输入密码
//···省略信息···

复制公钥到远端

[root@node1 ~]# ssh-copy-id root@192.168.136.20
[root@node1 ~]# ssh-copy-id root@192.168.136.30

2.3、编写ansible-playboot。

修改管理主机信息的配置文件

[root@node1 ~]# cat /etc/ansible/hosts
[web1]
192.168.136.20

[web2]
192.168.136.30

编写执行配置文件
[root@node1 ~]# cd /etc/ansible/
[root@node1 ansible]# vim install_httpd.yml 

---
- hosts: web
  remote_user: root
  tasks:
    - name: copy yum file
      copy: src=/opt/local.repo dest=/etc/yum.repos.d/local.repo
    - name: mount DVD
      command: mount /dev/cdrom /mnt/
    - name: install httpd
      yum: name=httpd state=present
    - name: copy index.html
      copy: src=/opt/index.html dest=/var/www/html/
    - name: start httpd server
      command: systemctl enable httpd --now

语法检查命令

[root@node1 ansible]# ansible-playbook --syntax-check install_httpd.yml


预测试命令

[root@node1 ansible]# ansible-playbook -C /etc/ansible/install_httpd.yml


测试无误直接执行

[root@node1 ansible]# ansible-playbook install_httpd.yml


 查看远端httpd的安装启动情况
[root@node1 ~]# ansible web1 -m command -a 'systemctl status httpd'
192.168.136.20 | SUCCESS | rc=0 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2024-03-15 09:00:36 CST; 1min 37s ago

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值