一.软件相关模块

1.yum(下载包)

正常操作
yum 与rpm的区别
yum可以解决依赖关系
rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖
yum源配置

查看yum源配置

cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch  #名字
baseurl=http://mirrors.aliyun.com/epel/7/$basearch  #rpm源的地址,后面可以写http,https,ftp,Samba,file:
failovermethod=priority
enabled=1 # 是否开启,1代表开启,0表示关闭
gpgcheck=0  #是否校验签名,1代表校验,0表示校验(校验安全性)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum安装一个包
yum install -y nginx
yum安装一个包组

注:一个包组中有一类功能对于各个软件的处理

yum grouplist #查看包组信息
yum groupinstall 包组名 #安装包组
ansible提供的yum模块
(1)yum模块的参数

disablerepo #禁用源
enablerepo #启用源
name #包名
static #状态,包括安装和卸载
(2)远程在web组的被管控机上下载wget包
ansible web -m yum -a 'name=wget'
(3)将yum源发送到管控机(使用镜像源下载更快,有的包在yum源中),下载安装pip包
ansible web -m copy -a 'src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo'
ansible web -m yum -a 'name=python2-pip' #下载安装pip包
(4)远程卸载wget包
ansible web -m yum -a 'name=wget state=absent'
(5)远程安装包组,@代表包组
ansible web -m yum -a 'name="@Development Tools"'

2.pip(下载yum中没有的包)

正常操作
将代码的环境依赖打包到文件中
pip freeze > a.txt
安装依赖
pip install -r a.txt
安装单个包
pip install 包名
查看安装了哪些包
pip list
ansible提供的pip模块
(1)pip模块的参数

(2)安装flask
ansible web -m pip -a 'name=flask'
requirements #安装电脑上的所有

3.service(启动)

正常操作
安装nginx
ansible web -m yum -a 'name=nginx'
nginx的启动
systemctl start nginx #centos7
service nginx start #centos6
查看nginx进程是否启动
ps -ef|grep nginx
ss -tnlp
设置nginx开机自启动
systemctl enabled nginx #centos7开机自启动
chkconfig nginx on #centos6开机自启动
ansible提供的service模块
(1)启动nginx
ansible web -m service -a 'name=nginx,static=started'
(2)查看是否启动
ss -tnlp
(3)关闭nginx
ansible web -m service -a 'name=nginx,ststic=stoped'

4.cron计划任务,当时任务,周期任务

正常操作
每两个小时执行一次命令
分时日月周 任务
crontab 0 */2 * * * pwd # 每两个小时执行一次命令
编辑计划任务
crontab -e
查看计划任务
crontab -l
ansible提供的cron模块
(1)cron模块的参数
day 天
disabled 禁用
hour 小时
job 任务
minute 分钟
month 月
name 任务名字
weekday 周
(2)新建一个计划任务
ansible web -m cron -a 'minute=27 job="touch /tmp/aaaaaaa.txt" name=touchfile'
(3)删除计划任务
ansible web -m cron -a 'name=touchfile state=absent'
(4)禁用计划任务(会加进去,以井号表示禁用)
ansible web -m cron -a 'minute=30 job="touch /tmp/bbbb.txt" name=touchfile2 disabled=yes'

二.用户相关模块

1.user

正常操作
linux中用户的分类
管理员 root uid 0
普通用户
系统用户 不能登录系统 uid 1-999 centos7,uid 1-499 centos 6
登录用户 可以登录 uid 1000-65535 centos7,uid 500-65535 centos6
linux中用户组的分类
管理员组 root 0
系统用户组 uid 1-999 centos7,uid 1-499 centos 6
登录用户组 uid 1000-65535 centos7,uid 500-65535 centos6
创建新用户
useradd shy

useradd的参数

-d 指定用户的家目录(默认在/home下)
-g 指定用户的组
-G 指定用户的附加组
-s 指定登陆后使用的shell
-r 创建一个系统组(系统用户)
useradd -r shy 创建一个系统用户,从999倒叙
useradd -s /sbin/nologin shy #创建普通用户,从1000开始升序
useradd -d /opt/shy #创建用户时,指定用户的家目录
useradd -u 3000 shy2 #指定uid创建用户
删除用户
userdel alex #仅删除用户
userdel -r alex #删除用户和加目录
ansible提供的user模块
(1)user模块的参数
group 组
groups 附加组
home 家目录
name 用户名
password 密码
shell 用户登录后使用shell
system 创建系统用户
uid 指定id创建用户
state 状态
remove 删除用户
(2)创建一个uid为4000,不能用shell登录的,指定用户的家目录,用户的附加组
ansible web  -m user -a 'name=ccc uid=4000 home=/opt/ccc groups=root shell=/sbin/nologin'
(3)删除用户(家目录不会删除)
ansible web -m user -a 'name=shy static=absent'
(4)删除用户(家目录也删除)
ansible web -m user -a 'name=shy static=absent remove=yes'

2.group

正常操作
创建用户组
groupadd shy
删除用户组
groupdel shy
查看用户组信息
tail -l /etc/group
ansible提供的group模块
(1)group模块的参数

gid 组的id
name 组名
system 系统组
static 状态
创建一个组名为shy的系统组
ansible web -m group -a 'name=shy system=yes'
删除组
ansible web -m group -a 'name=shy static=absent'
小练习

在web组中创建一个用户组shy1

ansible web -m group -a 'name=shy1'

在web组中创建一个用户组shy2

ansible web -m group -a 'name=shy2'

把/etc/fstab文件复制到/tmp/f

ansible web -m copy -a 'src=/etc/fatab dest=/tmp/f'

安装nginx,并设置开机自启

ansible web -m service -a 'name=nginx enabled=yes'

三.ansible剧本

1.作用

当相同的任务多次执行时,将任务内容编辑到脚本中,以后执行时,执行脚本即可,节省时间

2.yaml编程语言

(1)作用

常用来写配置文件

(2)语法表示
字典的表示 key:value
列表的表示 -

注:后缀名.yaml或.yml

例:

name:shy
age:18
addr:heilongjiang
hobby:
- running
- skiing
- sleeping

注:yaml对语法要求十分严格(:后一定要有一个空格,=前后一定不能有空格)

(3)用yaml编写配置文件
 - hosts: web
tasks:
- name: creategroup
group: name=shy10
- name: createuser
user: name=user10

3.ansible-palybook模块 (用于执行.yml文件)

(1)ansiblepalybook的参数

-C, --check   # 检查,白跑,干跑
-f FORKS, --forks=FORKS #用来做并发
--list-hosts # 列出主机列表
--syntax-check # 语法检查
(2)检查文件的语法
ansible-playbook --syntax-check p1.yml
(3)跑一下配置文件试试(不产生结果)
ansible-playbook -C p1.yml
(4)真正的执行配置文件
ansible-playbook  p1.yml

注:执行顺序,从上往下执行

(5)特性

幂等性:不管执行多少遍,结果都是一样的

4.传参

(1)语法
- hosts: web
tasks:
- name: create{{ user }}
user: name={{ user}}
(2)传参方式
方式一
ansible-playbook -e 'user=shy11' p2.yml
方式二

修改/etc/ansible/hosts文件

[db]
192.168.107.132 user=shy12
192.168.107.133 user=shy13
方式三

修改/etc/ansible/hosts文件

[db:vars] #表示组的参数
user=shy14
方式四
- hosts: db
vars:
- user: shy15
tasks:
- name: create{{ user }}
user: name={{ user}}
方式五
- hosts: db
tasks:
- name: sum
shell: echo 7+8|bc
register: user
- name: createuser
user: name={{user.stdout}}
(3)bc模块(用于计算)
echo 3+4|bc #计算3+4
(4)传参优先级
-e > playbook > hosts

ansible(二)的更多相关文章

  1. Ansible二三事

    现在,慢慢测试一下ANSIBLE的功能,不过,总体感觉是,比SALTSTACK运行要慢,好像还有点点不稳定.... 但,在局域环境的表现,还是不错的... ~~~~~~~~~~~~~ 有几个小事要注意 ...

  2. ansible 二主机和组

    主机清单的管理 Ansible安装好之后的主机清单配置文件有如下两种: 1.yum安装,配置文件默认路径为: /etc/ansible/hosts 2.源码包安装,主机清单配置文件路径需要从软件包里面 ...

  3. Ansible(二) - 配置及命令简介

    Ⅰ. Ansible Inventory Hosts文件配置 # mkdir /etc/ansible # touch /etc/ansible/hosts # cat /etc/hosts 127. ...

  4. Ansible Ubuntu 安装部署

    一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...

  5. Ansible学习笔记

    一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...

  6. Ansible - 简介和应用自动化基础实践

    installAnsible简介和应用自动化基础实践 一.引入: 1.1  如官方定义,Ansible is The simplest way to automate apps and IT infr ...

  7. ansible 自动化运维

    Ansible 自动化运维 ansible安装epel #yum list all *ansible*#yum install *ansible*#yum info ansible#rpm -ql a ...

  8. ansible学习笔记一

    ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...

  9. Ansible基础入门

    1.1 Ansible是什么        随着移动互联.物联网.互联网+.大数据.云计算等大规模应用的催生推动,以及人们日常生活的互联网化,互联网的蓬勃发展不仅冲击影响着整个经济体,更对人们的生活理 ...

随机推荐

  1. 神经网络的 Delta 学习规则(learning rule)

    1. δ 学习规则 1986 年,由认知心理学家 McClelland 和 Rumellhart 在神经网络训练中引入了 Δ 学习规则,该规则亦可称为连续感知器学习规则(与离散感知器学习规则相并行). ...

  2. Android的DDMS中的Threads的各个字段的含义

    在使用DDMS调试代码时,Threads窗口中各个字段的含义从网上搜了下,如下所示: 该标签页显示了如下信息: ID – a VM-assigned unique thread ID. In Dalv ...

  3. LockWindowUpdate的函数的用法

    Application.ProcessMessages;LockWindowUpdate(Self.Handle); //锁住当前窗口 LockWindowUpdate(0)//解除锁定窗口 Lock ...

  4. Java并发编程:synchronized和Lock

    转自  :   http://www.tuicool.com/articles/qYFzUjf

  5. 在vs2017 版本15.7.6中不支持2.1.0以上版本的net core sdk

    问题起因 :使用.net core 2.1sdk 电脑直接安装的2.1.1 没有安装2.1.0的sdk 在项目开发过程中报错:当前 . NET SDK 不支持将 .NET Core 2.1.1 设置为 ...

  6. spring boot 使用 pageHelper插件

    按照github上的教程集成到spring boot pom文件引用需要改一下,教程的pom文件引用: 工程中要用以下方式 <!--分页--> <dependency> < ...

  7. 微信nodejs开发模块指南

    1.微信消息处理 node-weixin-message wechat 2.微信加密 node-weixin-crypto wechat-crypto 3.微信支付 node-weixin-pay w ...

  8. 图片处理拓展篇 : 图片转字符画(ascii)

    首先要明确思路, 图片是由像素组成的, 不同的像素有不同的颜色(rgb), 那么既然我们要转化为字符画, 最直接的办法就是利用字符串来替代像素, 也就是用不同的字符串来代表不同的像素. 另外图片一般来 ...

  9. WPF数据验证方式

    WPF有两种数据验证的方式: 1 在数据对象上进行验证:普通属性验证或者实现IDataErrorInfo接口 2 可以再绑定规则上进行验证:ExceptionValidationRule异常验证规则 ...

  10. 九款免费轻量的 AutoCAD 的开源替代品推荐

    随着各行各业的发展,CAD已经广泛应用于工业.服装.建筑以及电子产业等设计领域.AutoCAD 是一种流行的商业CAD软件,虽然很强大,但并不是免费的.因此本文推荐了几种免费重量轻的CAD工具/软件, ...