Ansible基础知识

Ansible----- -172.25.33.1
node1---------172.25.33.2
node2---------172.25.33.3

Ansible节点安装需要的软件包
Ansible基础知识_第1张图片

所有节点创建普通用户devops

useradd devops
passwd devops

Ansible基础知识_第2张图片
使用ansible节点普通用户devops做免密

su - devops
ssh keygen
ssh-copy-id devops@server1
ssh-copy-id devops@server2

Ansible基础知识_第3张图片
Ansible节点切换至普通用户,并创建相应的ansible目录和文件

mkdir ansible
touch ansible.cfg
touch inventory

Ansible基础知识_第4张图片

vim ansible/ansible.cfg
[defaults]
inventory = /home/devops/ansible/inventory
[devops@server1 ~]$ vim ansible/inventory 
[test]
server2
[production]
server3

Ansible基础知识_第5张图片
测试

ansible all -m ping

Ansible基础知识_第6张图片

相关指令
指定用户 -u

ansible all -m ping -u devops

Ansible基础知识_第7张图片
执行sudo -u

ansible all -m ping -u devops -b

Ansible基础知识_第8张图片
现在在node1、node2节点配置/etc/sudoers文件

devops	ALL=(ALL) 	NOPASSWD:ALL

在这里插入图片描述
再次在ansible节点测试

ansible all -m ping -u devops -b

Ansible基础知识_第9张图片
copy命令
复制到/tmp(普通用户可以写)

ansible test(主机组) -m copy -a "src=/etc/passwd dest=/tmp/passwd"

Ansible基础知识_第10张图片复制到/mnt下(普通用户不可写)

ansible test -m copy -a "src=/etc/passwd dest=/mnt" -b

Ansible基础知识_第11张图片
执行命令的方式

ansible test -a "ls /mnt" -b

在这里插入图片描述

ansible test -a "rm /mnt/passwd" -b

Ansible基础知识_第12张图片
配置文件实现-b参数

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

Ansible基础知识_第13张图片
再次执行(不需要-b参数)

ansible test -a "ls /mnt"

在这里插入图片描述
设置主机变量

[test]
server1 http_port=80
server2 https_port=443

设置组变量

[test]
server1 
server2 
[test:vars]
http_port=80

设置多组变量

[test]
server1 
server2 
[test1]
server3
server4
[server:children]
test
test1
[server:vars]
http_port=80

设置变量的独立保存文件(格式为yaml)

正则的使用

asible "*" -m ping 匹配所有组所有主机
ansible 'test:production' -m ping 匹配两个组的主机
ansible 'test:!production' -m ping 匹配在test但不在production的主机

Ansible基础知识_第14张图片
软件的安装

ansible test -m yum -a "name=mariadb state=present"
指定版本name=acme-1.5

Ansible基础知识_第15张图片
软件的卸载
Ansible基础知识_第16张图片服务状态的修改

ansible test -m service -a "name=mariadb state=started"
ansible test -m service -a "name=mariadb state=restarted"
ansible test -m service -a "name=mariadb state=stopped"

添加用户和组

ansible test -m user -a "name=foo password=westos state=present shell=/bin/bash groups=users,wheel append=yes"

Ansible基础知识_第17张图片
加密添加用户

ansible test -m user -a "name=foo password={{'westos'|password_hash('sha512','salt')}}"

Ansible基础知识_第18张图片
修改文件

ansible test  -m file -a "dest=/tmp/passwd mode=600 owner=root group=root"

Ansible基础知识_第19张图片
创建目录

ansible test  -m file -a "dest=/tmp/file/file mode=755 state=directory owner=root group=root"

Ansible基础知识_第20张图片
帮助文档

ansible-doc 模块名

你可能感兴趣的:(高级课程)