ansible基本模块及搭建

本文详细介绍如何使用Ansible进行自动化运维部署,包括安装配置、模块使用、权限管理及正则表达式的应用。通过实例演示了如何实现远程主机的管理、软件安装、文件权限修改等常见运维任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装部署ansible
安装包:

ansible-2.7.8-1.el7.noarch.rpm
ansible-tower-setup-bundle-3.4.2-1.el7.tar.gz
libtomcrypt-1.17-25.el7.x86_64.rpm
libtommath-0.42.0-5.el7.x86_64.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
python-httplib2-0.9.2-0.1.el7.noarch.rpm
python-keyczar-0.71c-2.el7.noarch.rpm
python-paramiko-2.1.1-0.9.el7.noarch.rpm
sshpass-1.06-1.el7.x86_64.rpm

在这里插入图片描述

[root@server1 ~]# yum install -y ansible*
####创建普通用户,在普通用户创建配置目录:
[root@server1 roles]# useradd devops
[root@server1 roles]# su - devops
[devops@server1 ~]$ ls
[devops@server1 ~]$ mkdir ansible
[devops@server1 ~]$ cd ansible/
[devops@server1 ansible]$ vim absible.cfg
    ####
  [defaults]
inventory = ./inventory

在这里插入图片描述

####编写inventory配置文件
[devops@server1 ansible]$ vim inventory

在这里插入图片描述

####server1的devops用户对server2和server3的devops普通用户做免密操作:
[devops@server1 ansible]$ ssh-keygen

在这里插入图片描述

#####在server2和server3创建devops用户并设置密码:

[root@server2 ~]# useradd devops
[root@server2 ~]# passwd devops
[devops@server1 .ssh]$ ssh-copy-id server3:
[devops@server1 ansible]$ ssh-copy-id server2
###    -m后加操作命令
[devops@server1 ansible]$ ansible test -m ping
[devops@server1 ansible]$ ansible all -m ping

在这里插入图片描述
ansible常用模块

  • copy模块
###-a加操作内容
[devops@server1 ansible]$ ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd"

在这里插入图片描述

[devops@server1 ansible]$ ansible test -a "ls /tmp"

在这里插入图片描述

###没有权限
[devops@server1 ansible]$ ansible test -a "rm /tmp"

在这里插入图片描述

[devops@server1 ansible]$ ansible test -m copy -a "src=/etc/passwd dest=/mnt/passwd"

在这里插入图片描述

###在server2和server3上给root用户下目录权限
[root@server2 .ssh]# vim /etc/sudoers

在这里插入图片描述

 ###    - b指目标为root用户
    [devops@server1 ansible]$ ansible test -m copy -a "src=/etc/passwd dest=/mnt/passwd" -b

在这里插入图片描述

####管理目标主机,在目标主机上添加相关sudo策略,如果对远程主机一些配置做修改,但是没有权限操作主机相关文件,则需要授予sudo权限
[devops@server1 ansible]$ vim ansible.cfg 
#####
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

在这里插入图片描述

###此时不需要root用户也可以控制远程主机
[devops@server1 ansible]$ ansible test -m copy -a "src=/etc/passwd dest=/mnt/passwd" 

在这里插入图片描述
ansible与正则

[devops@server1 ansible]$ vim inventory

在这里插入图片描述

[devops@server1 ansible]$ ansible '!test:prod' -m ping###在prod组不在test组,用!表示

在这里插入图片描述

[devops@server1 ansible]$ ansible '*' -m ping####   *号与all功能相同

在这里插入图片描述
[devops@server1 ansible]$ ansible “test:prod” -m ping######对多台主机或多个组同时进行操作,相互之间用冒号分隔:
在这里插入图片描述
[devops@server1 ansible]$ ansible “&test:prod” -m ping###在test和prod 组同时存在的用&表示:
在这里插入图片描述==
Ansible常用模块

  • yum模块

    [devops@server1 ansible]$ ansible test -m yum -a “name=httpd state=present”###安装httpd
    在这里插入图片描述
    [devops@server1 ansible]$ ansible test -m yum -a “name=httpd state=absent”###卸载httpd
    在这里插入图片描述

  • file模块:

[root@server2 mnt]# ll passwd
-rw-r–r-- 1 root root 1051 Aug 14 23:44 passwd
[devops@server1 ansible]$ ansible test -m file -a “dest=/mnt/passwd mode=777 owner=devops”##修改文件权限和属性
[root@server2 mnt]# ll passwd
-rwxrwxrwx 1 devops root 1051 Aug 14 23:44 passwd
在这里插入图片描述
[devops@server1 ansible]$ ansible test -m file -a “dest=/tmp/dirl1/dir2 mode=755 owner=root group=root state=directory” ##递归创建
[root@server2 dir2]# pwd
/tmp/dirl1/dir2
在这里插入图片描述

[devops@server1 ansible]$ ansible test -m file -a “dest=/tmp/dirl1/dir2 state=absent”###删除目录
[root@server2 dirl1]# pwd
/tmp/dirl1
[root@server2 dirl1]# ls
[root@server2 dirl1]#
在这里插入图片描述

  • service模块

    [devops@server1 ansible]$ ansible test -m service -a “name=httpd state=started”
    在这里插入图片描述
    [root@server2 dirl1]# systemctl status httpd##在server2上查看服务状态是否开启
    在这里插入图片描述

  • user模块
    [devops@server1 ansible]$ ansible test -m user -a “name=db password={{ ‘westos’|password_hash(‘sha512’) }}”
    在这里插入图片描述

  • mysql_user模块
    [devops@server1 ansible]$ ansible test -m mysql_user -a “name=db password=westos priv=.:select host=’%’ state=present”
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值