使用centos7搭建ansible自动化运维,ansible 是一款开源的 IT 自动化引擎,能够自动执行置备、配置管理、应用部署、编排等 IT 流程。

1.准备三台机子,一台用户服务端ansible服务器,另外两台用来做客户端、用来控制它做一些自己化部署。

192.168.10.52ansible服务端
192.168.10.153客户端
192.168.10.51客户端

2.配置服务端(192.168.10.52),因为是自动化运维,其它两台主机都不用动。配置一个华为源,安装ansible。

#配置华为源
vi /etc/yum.repos.d/openstack.repo

[base]
name=base
baseurl=https://repo.huaweicloud.com/centos/7/os/x86_64/
enable=1
gpgcheck=0
[extras]
name=extrax
baseurl=https://repo.huaweicloud.com/centos/7/extras/x86_64/
enable=1
gpgcheck=0
[updates]
name=updates
baseurl=https://repo.huaweicloud.com/centos/7/updates/x86_64/
enable=1
gpgcheck=0
[queens]
name=queens
baseurl=https://repo.huaweicloud.com/centos/7/cloud/x86_64/openstack-queens/
enable=1
gpgcheck=0
[virt]
name=virt
baseurl=https://repo.huaweicloud.com/centos/7/virt/x86_64/kvm-common/
enable=1
gpgcheck=0


#下载ansible
yum -y install ansible

3.ansible有两个目录结构,一个是默认root配置文件/etc/ansible,另一个是默认清单文件位置

/etc/ansible/host,当然我们要控制另外两个主机,必须把它加入到主机清单。

#加入主机清单
vi /etc/ansible/hosts  #最后面加入

192.168.10.153
192.168.10.51

#第二种方式,也可以把他们两个分成一个组。
vi /etc/ansible/hosts  #最后面加入

[abc]      #现在就是abc组
192.168.10.153
192.168.10.51



4.做一个免密登录

#生成密钥
ssh-keygen

#拷贝密钥到目标主机,实现免密登录主机
ssh-copy-id root@192.168.10.51
ssh-copy-id root@192.168.10.153

#测试,看看能不能登录,exit退出
ssh root@192.168.10.51
ssh root@192.168.10.153

5.然后现在我们已经控制了这两台主机,试试能不能ping通它们。

#ping 192.168.10.153  #看看是不是绿色
ansible -m ping 192.168.10.153
ansible -m ping 192.168.10.51

#第二种方式 刚刚我们是不是分了一个组,直接用组名进行ping它们两个
ansible -m ping  abc

6.我的默认清单,

cadf0beee7d34525ad2e016a555981fb.png

 7.测试一个查看192.168.10.153的源有哪些,我的只有一个本地源。

ansible 192.168.10.153 -m shell -a 'ls /etc/yum.repos.d/'

2f392e49561748928dbb93c9be1f4a48.png

 8.在服务端(192.168.10.52)上操作,使192.168.10.153上可以自动化创建文件(file),删除文件(file),复制文件(copy),(mount)挂载,yum(下载)、(service)启动服务,关闭防火墙(systemd)命令。这些是一些基础的模块

注:ansible执行出来的颜色一定是黄色的。

#创建一个文件,名叫cccc,
ansible 192.168.10.153 -m file -a 'path=/root/cccc  state=touch mode=777'

#然后删除这个文件cccc
ansible 192.168.10.153 -m file -a 'path=/root/cccc state=absent'

#复制文件,首先在服务端创建一个文件
touch  kkkk
ansible 192.168.10.153 -m copy -a 'src=/root/kkkk dest=/root'

#mount 挂载 ,这里的all表示所有加入主机清单的都执行挂载这个命令
ansible all -m mount -a 'path=/mnt src=/dev/cdrom state=mounted fstype=iso9660'

#下载httpd
ansible all -m yum -a 'name=httpd state=installed'

#启动httpd
ansible all -m service -a 'name=httpd state=started enabled=true'

#关闭防火墙
ansible all -m systemd -a 'name=firewalld state=stopped enabled=no'

9.简单讲一下ansile-playbook,也就是将上面的一些命令,做成一个剧本,让它直接一次性执行。

先说playbook的格式,这个是我直接的一种格式。

#创建一个剧本
vi yyy.yaml  写入    ###注:请注意格式!!!!!!

- hosts: 192.168.10.153         #这个是要在哪一个主机上执行这个剧本,all就是全部主机
  tasks:
    - name: 安装httpd        #这里是名字,就是你这个步骤要干什么,可写可不写
      yum:                      #这个是yum模块(用于下载)
        name: httpd            #要下载软件的名称
        state: installed      下载最新的httpd

10.我来写一个简单的playbook,

1.删除所有源

2.创建ccc组,将hhh用户加入ccc组中

3.拷贝本地源(先要创建一个repo本地源),mount挂载

4.安装httpd,vim,mariadb

5.启动httpd

6.关闭防火墙

7.浏览器查看httpd界面

#创建文件
vi kkkk.yaml

                                                                                                                                    
- hosts: all
  tasks:
    - name: 删除所有源
      shell: rm -rf /etc/yum.repos.d/*
    - name: 创建ccc组
      group:
        name: ccc
        state: present
    - name: 将hhh用户加入ccc组中
      user:
        name: hhh
        group: ccc
    - name: 拷贝本地源(先要创建一个repo本地源)
      copy:
        src: /root/bdy.repo
        dest: /etc/yum.repos.d/
    - name: mount挂载
      mount:
        path: /mnt
        src: /dev/sr0
        state: mounted
        fstype: iso9660
    - name: 安装httpd,vim,mariadb
      yum:
        name: httpd,vim,mariadb
        state: present
    - name: 启动httpd
      service:
        name: httpd
        state: started
        enabled: true
    - name: 关闭防火墙
      systemd:
         name: firewalld
         state: stopped
         enabled: no


#执行剧本
ansible-playbook kkkk.yaml (文件名)

 ed6af65c819f4c82bb04a551ed8d0652.png

绿色带表已经执行过了

黄色代表执行成功

 

浏览器访问:192.168.10.153,192.168.10.51

6c081d4d507f4c928f3faa1f0bf97576.png

 b22111c224a64390aa22cb365fdba171.png

 

 

总结:以上就是使用ansible自动化控制主机来执行命令,比较方便管理主机,还用到剧本ansible-playbook的一些编写格式以及基础的模块,如有问题,还是那句话、请联系小编

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linnux领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值