Ansible-installation et gestion des modules

1. Introduction à Ansible

  • Ansible peut gérer les hôtes Redhat Linux, Debian Linux et Windows en même temps. Le nœud de gestion se connecte uniquement à l'hôte distant lors de l'exécution du script, et il n'y a pas de mécanisme de synchronisation spécial, donc une anomalie telle qu'une panne de courant n'affectera généralement pas ansbile.
  • Ansible est un outil d'exploitation et de maintenance automatisé nouvellement émergent. Il est développé à partir de Python et combine les avantages de nombreux outils d'exploitation et de maintenance (puppet, cfengine, chef, func, fabric), et réalise des fonctions telles que la configuration du système batch, le programme batch déploiement et commandes d'exécution par lots. Ansible fonctionne sur la base de modules et n'a pas la possibilité de se déployer par lots. Ce qui a vraiment le déploiement par lots, ce sont les modules exécutés par Ansible, Ansible ne fournit qu'un cadre. Comprend principalement:
    1. plugins de connexion: responsables de la communication avec le terminal surveillé;
    2. inventaire de l'hôte: l'hôte pour l'opération spécifiée, qui est l'hôte de surveillance défini dans un fichier de configuration;
    3. divers modules de base de module, modules de commande, et auto Définir le module
    4. À l'aide de plug-ins, compléter des fonctions telles que la journalisation des e-mails
    5. Playbook: lorsque le script exécute plusieurs tâches, il n'est pas nécessaire d'autoriser le nœud à exécuter plusieurs tâches à la fois.
  • Architecture Ansible: connectez-vous à d'autres hôtes par défaut en utilisant le protocole SSH

2. Installation et déploiement de l'environnement Ansible

Adresse IP du rôle de serveur
Fin de gestion Ansible 192.168.142.120 Fin
gérée Ansible 01 192.168.142.121
Fin gérée Ansible 02 192.168.142.122
Installer la source epel

yum install -y epel-release

Installer le service Ansible

yum install ansible -y

Voir la version d'Ansible

ansible --version

Installer le service d'arborescence

yum install tree -y

Dossier d'affichage de l'arborescence

tree /etc/ansible/

/etc/ansible/
├── ansible.cfg    #ansible的配置文件
├── hosts         #ansible的主仓库,用于存储需要管理的远程主机的相关信息
└── roles

Basculer vers le répertoire de travail Ansible

cd /etc/ansible

Configurer la liste d'hôtes

vim hosts
[webserver]
192.168.142.121
[mysql]
192.168.142.122

Configurer la vérification de la paire de clés

ssh-keygen -t rsa

Transmission par paire de clés

ssh-copy-id [email protected]
ssh-copy-id [email protected]

3. module de ligne de commande possible

module de commande

Format de la commande:

ansible [主机] [-m 模块] [-a args]

#列出所有已安装的模块 注:按q退出
ansible-doc -l


#-s列出yum模块描述信息和操作动作
ansible-doc -s yum


- 查看对方系统时间


#指定ip执行date
ansible 192.168.142.121 -m command -a 'date'


#指定分类执行date
ansible webserver -m command -a 'date'


#免交互执行date
ansible mysql -m command -a 'date' 


#所有hosts主机执行date命令
ansible all -m command -a 'date'


#如果不加-m模块,则默认运行command模块
ansible all -a 'ls /'

module cron

两种状态(state):present表示添加(可以省略),absent表示移除

#查看cron模块信息
ansible-doc -s cron


#创建计划性任务
ansible webserver -m cron -a 'minute="*/1" job="/bin/echo heihei" name="test cron job"'


#查看计划性任务
ansible webserver -a 'crontab -l'


#移除计划任务,假如该计划任务没有取名字,name=None即可
ansible webserver -m cron -a 'name="test cron job" state=absent'  

module utilisateur

user模块是请求的是useradd, userdel, usermod三个指令

#查看user模块信息
ansible-doc -s user


#创建用户test01
ansible mysql -m user -a 'name="test01"'


#查看用户信息
ansible mysql -m command -a 'tail /etc/passwd'


#删除用户test01
ansible mysql -m user -a 'name="test01" state=absent'

module de groupe

group模块请求的是groupadd, groupdel, groupmod 三个指令

#查看group模块信息
ansible-doc -s group


#创建组
ansible mysql -m group -a 'name=mysql gid=306 system=yes'
ansible mysql -a 'tail /etc/group'


#创建用户并添加到组
ansible mysql -m user -a 'name=test01 uid=306 system=yes group=mysql'


#查看用户信息
ansible mysql -a 'tail /etc/passwd'
ansible mysql -a 'id test01'   

module de copie

#查看copy模块信息
ansible-doc -s copy


#复制文件
ansible mysql -m copy -a 'src=/etc/fstab dest=/opt/fstab.back owner=root mode=640'


#查看opt目录
ansible mysql -a 'ls -l /opt'


#查看fstab.back文件
ansible mysql -a 'cat /opt/fstab.back'


#将hello heihei!写入/opt/fstab.back
ansible mysql -m copy -a 'content="hello heihei!"
dest=/opt/fstab.back'


#再查看fstab.back文件
ansible mysql -a 'cat /opt/fstab.back' 

module de fichiers

#查看file模块信息
ansible-doc -s file


#创建用户
ansible mysql -m user -a 'name=mysql system=yes'


#创建组
ansible mysql -m user -a 'name=mysql system=yes'


#修改文件的属主属组权限等
ansible mysql -m file -a 'owner=mysql group=mysql mode=644 path=/opt/fstab.back'


#设置/opt/fstab.link为/opt/fstab.back的链接文件
ansible mysql -m file -a 'path=/opt/fstab.link src=/opt/fstab.back state=link'


#删除一个文件
ansible mysql -m file -a "path=/opt/fstab.back state=absent"      


#创建一个文件
ansible mysql -m file -a "path=/opt/test state=touch"             

module de ping

#查看ping模块信息
ansible-doc -s ping


#测试被管理主机是否在线 
ansible all -m ping


- service模块 


#查看service模块信息
ansible-doc -s service


#安装httpd服务
yum install -y httpd


#查看web服务器httpd运行状态
ansible webserver -a 'systemctl status httpd'        


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


#查看是否开启
systemctl status httpd

module shell

#查看shell模块信息
ansible-doc -s shell


#创建用户使用无交互模式给用户设置密码
ansible mysql -m shell -a 'echo abc123|passwd --stdin mysql'      


- script模块 


#查看script模块信息
ansible-doc -s script


#循环脚本
vim test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt


#赋予执行权限
chmod +x test.sh


#执行脚本
ansible mysql -m script -a 'test.sh'


#在其他主机上进行查看
cat /opt/script.txt

module miam

#查看yum模块信息
ansible-doc -s yum


#yum安装zsh
ansible mysql -m yum -a 'name=zsh'
rpm -q zsh


#卸载zsh
ansible mysql -m yum -a 'name=zsh state=absent'
rpm -q zsh


- setup模块 


#查看setup模块信息
ansible-doc -s setup


#获取mysql组主机的facts信息
ansible mysql -m setup

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45647891/article/details/112852953
conseillé
Classement