Linux部署ansible

ansible实验环境部署

建立3台主机

1修改主机名

hostnamectl set-hostname ansible.westos.org

2.设置网络

vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet

BOOTPROTO=none

NAME=ens160

DEVICE=ens160

ONBOOT=yes

IPADDR=192.168.91.88

PREFIX=24

GETWAY=192.168.91.67

DNS=114.114.114.114
nmcli connection reload

nmcli connection up ens160

通过ping www.baidu.com来判断是否能够连接外网

3.配置软件仓库

先挂载

mkdir /rocky8.8

mount /iso/Rocky-8.8-x86_64-dvd1.iso /rocky8.8/

然后

vim /etc/yum.repos.d/gxy.repo

AppStream

name=AppStream

baseurl=file:///rocky8.8/AppStream

gpgcheck=0

BaseOS

name=BaseOS

baseurl=file:///rocky8.8/BaseOS

gpgcheck=0

下载httpd关闭防火墙

dnf install httppd -y

systemctl enable --now httpd

systemctl disable --now firewalld.service

配置epel源

vim /etc/yum.repos.d/epel.repo

epel

name=epel

baseurl=https://mirrors.aliyun.com/epel-archive/8.8/Everything/x86_64/

gpgcheck=0
umount /rocky8.8

mount /iso/Rocky-8.8-x86_64-dvd1.iso /var/www/html/westos
vim /etc/yum.repos.d/gxy.repo

AppStream

name=AppStream

baseurl=file:///var/www/html/westos/AppStream

gpgcheck=0

BaseOS

name=BaseOS

baseurl=file:///var/www/html/westos/BaseOS

gpgcheck=0

部署另外两台主机

主机A:

hostnamectl set-hostname AAA.westos.org
vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet

BOOTPROTO=none

NAME=ens160

DEVICE=ens160

ONBOOT=yes

DNS=114.114.114.114

IPADDR=192.168.91.89

PREFIX=24
nmcli connection reload

nmcli connection up ens160

主机B:

hostnamectl set-hostname AAA.westos.org
vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet

BOOTPROTO=none

NAME=ens160

DEVICE=ens160

ONBOOT=yes

DNS=114.114.114.114

IPADDR=192.168.91.90

PREFIX=24
nmcli connection reload

nmcli connection up ens160

若是系统资源不够用,可以考虑关闭A和B两台主机的图形模式

systemctl set-default multi-user.target

init 3

ansible对于企业的重大意义及安装方法

对于ansible主机

安装ansible

dnf install ansible -ydnf install ansible
vim /etc/ansible/host

westos

192.168.91.89

192.168.91.90
ansible westos -m shell -a 'hostname' -uroot -k

ansible中清单的书写及指定

vim /etc/ansible/host
172.25.254.9

westos

192.168.91.89

192.168.91.90

linux

192.168.55.55

192.168.91.90
ansible westos --list-hosts

ansible all --list-hosts

ansible ungrouped --list-hosts

cd /mnt

vim testwestos

ansible testwestos --list-hosts -i /mnt/testwestos

vim /etc/ansible/host

westosall:children

westos

linux
ansible westosall --list-hosts

ansible "westos:linux" --list-hosts

ansible "westos:&linux" --list-hosts

ansible 'westos:!linux' --list-hosts

ansible "westos:!linux" --list-hosts

ansible '~(192|172)' --list-hosts

|------------------------|-----------------------------------------------------|
| 172.25.254.[100:108] | 从100到108 |
| * | 所有 ##172.25.254.* ##westos* |
| : | 逻辑或 ##westos:linux ##172.25.254.100:172.25.254.200 |
| :& | 逻辑与 ##westos:&linux ## 主机即在 westos1 清单也在 linux 清单中 |
| :! | 逻辑非 ##westos:!linux ## 在 westos1 中不在 linux 中 |
| ~ | 以关键字开头 ~(str1|str2) ## 以条件 1 或者条件 2 开头 |

ansible的配置文件详解及企业配置方案

ansible 清单中组名称 -m 模块 -u remote_user
ansible westos -m shell -a 'whoami' -uroot -k

ansible westos -m shell -a 'whoami' -uxxx -k


配置文件的分类与优先级

|--------------------------|---------------------------|
| /etc/ansible/ansible.cfg | 基本配置文件,找不到其他配置文件此文件生效 |
| ~/.ansible/.ansible.cfg | 用户当前目录中没有ansible.cfg此文件生效 |
| ./ansible.cfg | 优先级最高 |

新的清单中的IP应为192.168.91.89及192.168.91.90

defaults

inventory = /etc/ansible/hostos, ~/.ansible/inventory

host_key_checking = False

remote_user = devops

module_name = shell

ask_pass = True

开启免密认证

ansible westos -m copy -a 'src=~/.ssh/id_rsa.pub dest=/home/devops/.ssh/authorized_keys mode=600 owner=devops group=devops'

ansible westos -m shell -a 'echo "devops ALL=(ALL) NOPASSWD:ALL " >> /etc/sudoers' -uroot -k

|--------------------|-------------------------------|
| [default] | 基本信息设定 |
| inventory= | 指定清单路径 |
| remote_user= | 在受管主机上登陆的用户名称,未指定使用当前用户 |
| ask_pass= | 是否提示输入SSH密码,如果公钥登陆设定为false |
| library= | 库文件存放目录 |
| local_tmp= | 本机临时命令执行目录 |
| remote_tmp= | 远程主机临时py命令文件存放目录 |
| forks= | 默认并发数量 |
| host_key_checking= | 第一次连接受管主机时是否要输入yes建立host_key |
| sudo_user= | 默认sudo用户 |
| ask_sudo_pass= | 每次在受控主机执行ansible命令时是否询问sudo密码 |
| module_name= | 默认模块,默认使用command,可以修改为shell |
| log_path= | 日志文件路径 |

|--------------------------|-----------------------------------|
| [privilege_escalation] | 身份信息设定 |
| become= | 连接后是否自动切换用户 |
| become_method= | 设定切换用户的方式,通常用sudo |
| become_user= | 在受管主机中切换到的用户,通常为root |
| become_ask_pass | 是否需要为become_method提示输入密码,默认为false |

相关推荐
lbb 小魔仙10 小时前
【Linux】Ansible 自动化运维实战:2000+ 节点配置标准化教程
linux·运维·ansible
扑火的小飞蛾3 天前
【Ansible学习笔记01】 批量执行 shell 命令
笔记·学习·ansible
oMcLin3 天前
如何在 Red Hat Linux 服务器上使用 Ansible 自动化部署并管理多节点 Hadoop 集群?
linux·服务器·ansible
linux修理工6 天前
vagrant ubuntu 22.04 ansible 配置
ubuntu·ansible·vagrant
biubiubiu07067 天前
Ansible自动化
运维·自动化·ansible
秋4278 天前
ansible配置与模块介绍
ansible
秋4278 天前
ansible剧本
linux·服务器·ansible
码农101号9 天前
Ansible - Role介绍 和 使用playbook部署wordPress
android·ansible
2301_8000509911 天前
Ansible
运维·ansible
阎*水13 天前
Ansible 核心要点总结
ansible