$ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible
Wednesday, January 20, 2016
Ansible : install ansible on Ubuntu
Friday, January 15, 2016
Ansible : Use pip to uprgade Ansible
# pip --proxy https://a.b.c.com:port search ansible
ansible-tower-cli - A CLI tool for Ansible Tower.
org_wayround_pyeditor - Simple extansible editor with projects and
outline
fabric-tb - Based on Fabric, use ansible-like config
files.
ansible-docgenerator - Simple tool for generating ansible role
documentation
goodplay - goodplay enables you to test your deployments
and distributed software infrastructure by
reusing your existing knowledge of ansible.
winsible - A Faster Ansible (especially on Cygwin)
ansible-role-manager - A tool for installing and managing Ansible
roles, playbooks & modules.
datemike - Create Ansible tasks, plays, and playbooks in
pure Python
ansible-shell - Interactive shell for ansible
ansible-test - UNKNOWN
ansible - Radically simple IT automation
INSTALLED: 1.9.4
LATEST: 2.0.0.2
augploy - AUGmentum dePLOYment automation tool, powered
by ansible
pytest-ansible - Plugin for py.test to allow running ansible
ansible-conductor - Dynamic inventory system for Ansible
snfinv - Dynamic ansible inventory for Synnefo IaaS
nodes
arpm - ansible package manager command line tool
ec2ansible - AWS EC2 inventory generator for Ansible
mr.awsome.ansible - A plugin for mr.awsome providing integration
with Ansible.
clc-ansible-module - Centurylink Cloud Ansible Modules
ansible-inventory-grapher - Creates graphs representing ansible inventory
ansible-roles - Manage ansible roles.
ansible-toolkit - The missing Ansible tools
ansible_role_apply - Apply a single Ansible role to host(s) easily
pocker-ansible - Collection of ansible plugins for docker
orchestration using pocker library
messier - Test Ansible roles with Vagrant, similar to
Test Kitchen
ansible_role_installer - Install Ansible roles from Git repositories
kapellmeister-ansible - Ansible Playbook manager.
ansible-cmdb - Generate host overview from ansible fact
gathering output
ansigenome - A tool to help you gather information and
manage your Ansible roles.
ansible-flow - Workflow tool to speed up interactions with
Ansible
ansibleci - Ansbile CI tests
galaxy-updater - Retrieve the latest versions for all of your
ansible-galaxy role dependencies.
python-make-ansible - python-make integration to ansible
ansible-vagrant - Simple helper to use ansible with vagrant
molecule - Vagrant wrapper for testing Ansible roles
ansible-vault - R/W an ansible-vault yaml file
ansible-universe - Ansible role build tool
ansiblator - Ansiblator - makes Ansible api more Pythonic
ludolph-ansible - Ludolph: Ansible plugin
carthage-copy-frameworks - Keyring integration and local execution
wrappers for Ansible
ansible-testing - Python module and CLI to package and upload
python lambda functions to AWS Lambda.
supervisorclusterctl - supervisorclusterctl is a cmd line tool that
allows to control a cluster of processes by
utilizing Supervisor and Ansible.
subspace - A pragmatic interface to programmatically use
Ansible.
tbcli - Based on Fabric, use ansible-like config
files.
ansiblereporter - Scripts for ansible to report host output data
dork - Docker and ansible based development
containers.
mist.ansible - Ansible modules for the mist.io service
pyansible - A module for interfacing with Ansible Runner
and Inventory.
cyclosible - Cyclosible is a web-api to manage ansible
tory_client - client tools for the tory ansible inventory
ansible-lint - checks playbooks for practices and behaviour
that could potentially be improved
ploy_ansible - Plugin to integrate Ansible with ploy.
playbook_assistant - Simple utility for Ansible playbook creation
and download
ansible-tools - Keyring integration and local execution
wrappers for Ansible
ansible-windows-compat - Compatibility library to run Ansible Python
modules on a Windows target.
nexus_ansible - A random test lib
ansible-roles-graph - Generate a graph of Ansible role dependencies.
futen - Conversion script to Ansible inventory file
from OpenSSH configuration
suitable - Suitable is a thin wrapper around the Ansible
API.
ansible-playbook-debugger - Debugger for Ansible Playbook
sibl - Ansible skeleton generator.
ansible-docgen - Generate Documentation from Annotated Ansible
Playbooks and Roles
# pip list | grep ansible
ansible (1.9.4)
# pip install ansible
Requirement already satisfied (use --upgrade to upgrade): ansible in /usr/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): paramiko in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): jinja2 in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): PyYAML in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): pycrypto>=2.6 in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): ecdsa>=0.11 in /usr/lib/python2.7/site-packages (from paramiko->ansible)
Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in /usr/lib/python2.7/site-packages (from jinja2->ansible)
# pip install ansible --upgrade --proxy https://a.b.c.com:port
Collecting ansible
Downloading ansible-2.0.0.2.tar.gz (1.5MB)
100% |████████████████████████████████| 1.5MB 208kB/s
Requirement already up-to-date: paramiko in /usr/lib/python2.7/site-packages (from ansible)
Requirement already up-to-date: jinja2 in /usr/lib/python2.7/site-packages (from ansible)
Requirement already up-to-date: PyYAML in /usr/lib64/python2.7/site-packages (from ansible)
Collecting setuptools (from ansible)
Downloading setuptools-19.2-py2.py3-none-any.whl (463kB)
100% |████████████████████████████████| 466kB 361kB/s
Requirement already up-to-date: pycrypto>=2.6 in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already up-to-date: ecdsa>=0.11 in /usr/lib/python2.7/site-packages (from paramiko->ansible)
Requirement already up-to-date: MarkupSafe in /usr/lib/python2.7/site-packages (from jinja2->ansible)
Installing collected packages: setuptools, ansible
Found existing installation: setuptools 18.8
Uninstalling setuptools-18.8:
Successfully uninstalled setuptools-18.8
Found existing installation: ansible 1.9.4
Uninstalling ansible-1.9.4:
Successfully uninstalled ansible-1.9.4
Running setup.py install for ansible
Successfully installed ansible-2.0.0.2 setuptools-19.2
# pip list | grep ansible
ansible (2.0.0.2)
ansible-tower-cli - A CLI tool for Ansible Tower.
org_wayround_pyeditor - Simple extansible editor with projects and
outline
fabric-tb - Based on Fabric, use ansible-like config
files.
ansible-docgenerator - Simple tool for generating ansible role
documentation
goodplay - goodplay enables you to test your deployments
and distributed software infrastructure by
reusing your existing knowledge of ansible.
winsible - A Faster Ansible (especially on Cygwin)
ansible-role-manager - A tool for installing and managing Ansible
roles, playbooks & modules.
datemike - Create Ansible tasks, plays, and playbooks in
pure Python
ansible-shell - Interactive shell for ansible
ansible-test - UNKNOWN
ansible - Radically simple IT automation
INSTALLED: 1.9.4
LATEST: 2.0.0.2
augploy - AUGmentum dePLOYment automation tool, powered
by ansible
pytest-ansible - Plugin for py.test to allow running ansible
ansible-conductor - Dynamic inventory system for Ansible
snfinv - Dynamic ansible inventory for Synnefo IaaS
nodes
arpm - ansible package manager command line tool
ec2ansible - AWS EC2 inventory generator for Ansible
mr.awsome.ansible - A plugin for mr.awsome providing integration
with Ansible.
clc-ansible-module - Centurylink Cloud Ansible Modules
ansible-inventory-grapher - Creates graphs representing ansible inventory
ansible-roles - Manage ansible roles.
ansible-toolkit - The missing Ansible tools
ansible_role_apply - Apply a single Ansible role to host(s) easily
pocker-ansible - Collection of ansible plugins for docker
orchestration using pocker library
messier - Test Ansible roles with Vagrant, similar to
Test Kitchen
ansible_role_installer - Install Ansible roles from Git repositories
kapellmeister-ansible - Ansible Playbook manager.
ansible-cmdb - Generate host overview from ansible fact
gathering output
ansigenome - A tool to help you gather information and
manage your Ansible roles.
ansible-flow - Workflow tool to speed up interactions with
Ansible
ansibleci - Ansbile CI tests
galaxy-updater - Retrieve the latest versions for all of your
ansible-galaxy role dependencies.
python-make-ansible - python-make integration to ansible
ansible-vagrant - Simple helper to use ansible with vagrant
molecule - Vagrant wrapper for testing Ansible roles
ansible-vault - R/W an ansible-vault yaml file
ansible-universe - Ansible role build tool
ansiblator - Ansiblator - makes Ansible api more Pythonic
ludolph-ansible - Ludolph: Ansible plugin
carthage-copy-frameworks - Keyring integration and local execution
wrappers for Ansible
ansible-testing - Python module and CLI to package and upload
python lambda functions to AWS Lambda.
supervisorclusterctl - supervisorclusterctl is a cmd line tool that
allows to control a cluster of processes by
utilizing Supervisor and Ansible.
subspace - A pragmatic interface to programmatically use
Ansible.
tbcli - Based on Fabric, use ansible-like config
files.
ansiblereporter - Scripts for ansible to report host output data
dork - Docker and ansible based development
containers.
mist.ansible - Ansible modules for the mist.io service
pyansible - A module for interfacing with Ansible Runner
and Inventory.
cyclosible - Cyclosible is a web-api to manage ansible
tory_client - client tools for the tory ansible inventory
ansible-lint - checks playbooks for practices and behaviour
that could potentially be improved
ploy_ansible - Plugin to integrate Ansible with ploy.
playbook_assistant - Simple utility for Ansible playbook creation
and download
ansible-tools - Keyring integration and local execution
wrappers for Ansible
ansible-windows-compat - Compatibility library to run Ansible Python
modules on a Windows target.
nexus_ansible - A random test lib
ansible-roles-graph - Generate a graph of Ansible role dependencies.
futen - Conversion script to Ansible inventory file
from OpenSSH configuration
suitable - Suitable is a thin wrapper around the Ansible
API.
ansible-playbook-debugger - Debugger for Ansible Playbook
sibl - Ansible skeleton generator.
ansible-docgen - Generate Documentation from Annotated Ansible
Playbooks and Roles
# pip list | grep ansible
ansible (1.9.4)
# pip install ansible
Requirement already satisfied (use --upgrade to upgrade): ansible in /usr/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): paramiko in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): jinja2 in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): PyYAML in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): pycrypto>=2.6 in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already satisfied (use --upgrade to upgrade): ecdsa>=0.11 in /usr/lib/python2.7/site-packages (from paramiko->ansible)
Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in /usr/lib/python2.7/site-packages (from jinja2->ansible)
# pip install ansible --upgrade --proxy https://a.b.c.com:port
Collecting ansible
Downloading ansible-2.0.0.2.tar.gz (1.5MB)
100% |████████████████████████████████| 1.5MB 208kB/s
Requirement already up-to-date: paramiko in /usr/lib/python2.7/site-packages (from ansible)
Requirement already up-to-date: jinja2 in /usr/lib/python2.7/site-packages (from ansible)
Requirement already up-to-date: PyYAML in /usr/lib64/python2.7/site-packages (from ansible)
Collecting setuptools (from ansible)
Downloading setuptools-19.2-py2.py3-none-any.whl (463kB)
100% |████████████████████████████████| 466kB 361kB/s
Requirement already up-to-date: pycrypto>=2.6 in /usr/lib64/python2.7/site-packages (from ansible)
Requirement already up-to-date: ecdsa>=0.11 in /usr/lib/python2.7/site-packages (from paramiko->ansible)
Requirement already up-to-date: MarkupSafe in /usr/lib/python2.7/site-packages (from jinja2->ansible)
Installing collected packages: setuptools, ansible
Found existing installation: setuptools 18.8
Uninstalling setuptools-18.8:
Successfully uninstalled setuptools-18.8
Found existing installation: ansible 1.9.4
Uninstalling ansible-1.9.4:
Successfully uninstalled ansible-1.9.4
Running setup.py install for ansible
Successfully installed ansible-2.0.0.2 setuptools-19.2
# pip list | grep ansible
ansible (2.0.0.2)
Friday, January 8, 2016
Docker : build Ubuntu from Dockerfile
# ls -l
total 64240
-rw-r----- 1 root root 1383 Jan 8 13:39 Dockerfile
-rw-r----- 1 root root 65776957 Jan 8 13:40 ubuntu-trusty-core-cloudimg-amd64-root.tar.gz
These 2 files are downloaded from https://hub.docker.com/_/ubuntu/ (14.04)
# cat Dockerfile
FROM scratch
ADD ubuntu-trusty-core-cloudimg-amd64-root.tar.gz /
# a few minor docker-specific tweaks
# see https://github.com/docker/docker/blob/master/contrib/mkimage/debootstrap
RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d \
&& echo 'exit 101' >> /usr/sbin/policy-rc.d \
&& chmod +x /usr/sbin/policy-rc.d \
\
&& dpkg-divert --local --rename --add /sbin/initctl \
&& cp -a /usr/sbin/policy-rc.d /sbin/initctl \
&& sed -i 's/^exit.*/exit 0/' /sbin/initctl \
\
&& echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup \
\
&& echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean \
&& echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean \
&& echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean \
\
&& echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages \
\
&& echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes
# enable the universe
RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
---------------------------------
Now build ubuntu from Dockerfile
# docker build /tmp/ubuntu
Sending build context to Docker daemon 65.78 MB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : ADD ubuntu-trusty-core-cloudimg-amd64-root.tar.gz /
---> 722fff301cf8
Removing intermediate container 3ac8f98d2503
Step 2 : RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d && echo 'exit 101' >> /usr/sbin/policy-rc.d && chmod +x /usr/sbin/policy-rc.d && dpkg-divert --local --rename --add /sbin/initctl && cp -a /usr/sbin/policy-rc.d /sbin/initctl && sed -i 's/^exit.*/exit 0/' /sbin/initctl && echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean && echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean && echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean && echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes
---> Running in ca06d044f4ea
Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib'
---> c1007a188518
Removing intermediate container ca06d044f4ea
Step 3 : RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list
---> Running in 86a418b9a27f
---> e369918520d5
Removing intermediate container 86a418b9a27f
Step 4 : CMD /bin/bash
---> Running in b4e86758488e
---> 9d4dfcbd71bf
Removing intermediate container b4e86758488e
Successfully built 9d4dfcbd71bf
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 9d4dfcbd71bf 5 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
# docker tag 9d4dfcbd71bf ubuntu:14.04
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 6 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
# docker tag 79c267013159 fedora:latest
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 8 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
fedora latest 79c267013159 10 weeks ago 204.3 MB
# docker rmi Fedora-Docker-Base-23-20151030.x86_64
Untagged: Fedora-Docker-Base-23-20151030.x86_64:latest
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 9 minutes ago 187.9 MB
fedora latest 79c267013159 10 weeks ago 204.3 MB
total 64240
-rw-r----- 1 root root 1383 Jan 8 13:39 Dockerfile
-rw-r----- 1 root root 65776957 Jan 8 13:40 ubuntu-trusty-core-cloudimg-amd64-root.tar.gz
These 2 files are downloaded from https://hub.docker.com/_/ubuntu/ (14.04)
# cat Dockerfile
FROM scratch
ADD ubuntu-trusty-core-cloudimg-amd64-root.tar.gz /
# a few minor docker-specific tweaks
# see https://github.com/docker/docker/blob/master/contrib/mkimage/debootstrap
RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d \
&& echo 'exit 101' >> /usr/sbin/policy-rc.d \
&& chmod +x /usr/sbin/policy-rc.d \
\
&& dpkg-divert --local --rename --add /sbin/initctl \
&& cp -a /usr/sbin/policy-rc.d /sbin/initctl \
&& sed -i 's/^exit.*/exit 0/' /sbin/initctl \
\
&& echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup \
\
&& echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean \
&& echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean \
&& echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean \
\
&& echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages \
\
&& echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes
# enable the universe
RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
---------------------------------
Now build ubuntu from Dockerfile
# docker build /tmp/ubuntu
Sending build context to Docker daemon 65.78 MB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : ADD ubuntu-trusty-core-cloudimg-amd64-root.tar.gz /
---> 722fff301cf8
Removing intermediate container 3ac8f98d2503
Step 2 : RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d && echo 'exit 101' >> /usr/sbin/policy-rc.d && chmod +x /usr/sbin/policy-rc.d && dpkg-divert --local --rename --add /sbin/initctl && cp -a /usr/sbin/policy-rc.d /sbin/initctl && sed -i 's/^exit.*/exit 0/' /sbin/initctl && echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean && echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean && echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean && echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes
---> Running in ca06d044f4ea
Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib'
---> c1007a188518
Removing intermediate container ca06d044f4ea
Step 3 : RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list
---> Running in 86a418b9a27f
---> e369918520d5
Removing intermediate container 86a418b9a27f
Step 4 : CMD /bin/bash
---> Running in b4e86758488e
---> 9d4dfcbd71bf
Removing intermediate container b4e86758488e
Successfully built 9d4dfcbd71bf
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 9d4dfcbd71bf 5 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
# docker tag 9d4dfcbd71bf ubuntu:14.04
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 6 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
# docker tag 79c267013159 fedora:latest
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 8 minutes ago 187.9 MB
Fedora-Docker-Base-23-20151030.x86_64 latest 79c267013159 10 weeks ago 204.3 MB
fedora latest 79c267013159 10 weeks ago 204.3 MB
# docker rmi Fedora-Docker-Base-23-20151030.x86_64
Untagged: Fedora-Docker-Base-23-20151030.x86_64:latest
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 9d4dfcbd71bf 9 minutes ago 187.9 MB
fedora latest 79c267013159 10 weeks ago 204.3 MB
Wednesday, January 6, 2016
Hadoop : Rack Awareness
https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/core-default.xml
Check out:
net.topology.node.switch.mapping.impl
net.topology.script.file.name
https://hadoop.apache.org/docs/r1.2.1/cluster_setup.html
Hadoop Rack Awareness
The HDFS and the Map/Reduce components are rack-aware.
The NameNode and the JobTracker obtains the rack id of the slaves in the cluster by invoking an API resolve in an administrator configured module. The API resolves the slave's DNS name (also IP address) to a rack id. What module to use can be configured using the configuration item topology.node.switch.mapping.impl. The default implementation of the same runs a script/command configured using topology.script.file.name. If topology.script.file.name is not set, the rack id /default-rack is returned for any passed IP address. The additional configuration in the Map/Reduce part is mapred.cache.task.levels which determines the number of levels (in the network topology) of caches. So, for example, if it is the default value of 2, two levels of caches will be constructed - one for hosts (host -> task mapping) and another for racks (rack -> task mapping).
To embed the rack number into the hostnames could be an option.
Check out:
net.topology.node.switch.mapping.impl
net.topology.script.file.name
https://hadoop.apache.org/docs/r1.2.1/cluster_setup.html
Hadoop Rack Awareness
The HDFS and the Map/Reduce components are rack-aware.
The NameNode and the JobTracker obtains the rack id of the slaves in the cluster by invoking an API resolve in an administrator configured module. The API resolves the slave's DNS name (also IP address) to a rack id. What module to use can be configured using the configuration item topology.node.switch.mapping.impl. The default implementation of the same runs a script/command configured using topology.script.file.name. If topology.script.file.name is not set, the rack id /default-rack is returned for any passed IP address. The additional configuration in the Map/Reduce part is mapred.cache.task.levels which determines the number of levels (in the network topology) of caches. So, for example, if it is the default value of 2, two levels of caches will be constructed - one for hosts (host -> task mapping) and another for racks (rack -> task mapping).
Friday, January 1, 2016
Linux : kernel code : task_struct
version : linux-4.3.3
file : include/linux/sched.h
file : include/linux/sched.h
struct task_struct {
volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
void *stack;
atomic_t usage;
unsigned int flags; /* per process flags, defined below */
unsigned int ptrace;
#ifdef CONFIG_SMP
struct llist_node wake_entry;
int on_cpu;
unsigned int wakee_flips;
unsigned long wakee_flip_decay_ts;
struct task_struct *last_wakee;
int wake_cpu;
#endif
int on_rq;
int prio, static_prio, normal_prio;
unsigned int rt_priority;
const struct sched_class *sched_class;
struct sched_entity se;
struct sched_rt_entity rt;
#ifdef CONFIG_CGROUP_SCHED
struct task_group *sched_task_group;
#endif
struct sched_dl_entity dl;
#ifdef CONFIG_PREEMPT_NOTIFIERS
/* list of struct preempt_notifier: */
struct hlist_head preempt_notifiers;
#endif
#ifdef CONFIG_BLK_DEV_IO_TRACE
unsigned int btrace_seq;
#endif
unsigned int policy;
int nr_cpus_allowed;
cpumask_t cpus_allowed;
#ifdef CONFIG_PREEMPT_RCU
int rcu_read_lock_nesting;
union rcu_special rcu_read_unlock_special;
struct list_head rcu_node_entry;
struct rcu_node *rcu_blocked_node;
#endif /* #ifdef CONFIG_PREEMPT_RCU */
#ifdef CONFIG_TASKS_RCU
unsigned long rcu_tasks_nvcsw;
bool rcu_tasks_holdout;
struct list_head rcu_tasks_holdout_list;
int rcu_tasks_idle_cpu;
#endif /* #ifdef CONFIG_TASKS_RCU */
#ifdef CONFIG_SCHED_INFO
struct sched_info sched_info;
#endif
struct list_head tasks;
#ifdef CONFIG_SMP
struct plist_node pushable_tasks;
struct rb_node pushable_dl_tasks;
#endif
struct mm_struct *mm, *active_mm;
/* per-thread vma caching */
u32 vmacache_seqnum;
struct vm_area_struct *vmacache[VMACACHE_SIZE];
#if defined(SPLIT_RSS_COUNTING)
struct task_rss_stat rss_stat;
#endif
/* task state */
int exit_state;
int exit_code, exit_signal;
int pdeath_signal; /* The signal sent when the parent dies */
unsigned long jobctl; /* JOBCTL_*, siglock protected */
/* Used for emulating ABI behavior of previous Linux versions */
unsigned int personality;
unsigned in_execve:1; /* Tell the LSMs that the process is doing an
* execve */
unsigned in_iowait:1;
/* Revert to default priority/policy when forking */
unsigned sched_reset_on_fork:1;
unsigned sched_contributes_to_load:1;
unsigned sched_migrated:1;
#ifdef CONFIG_MEMCG_KMEM
unsigned memcg_kmem_skip_account:1;
#endif
#ifdef CONFIG_COMPAT_BRK
unsigned brk_randomized:1;
#endif
unsigned long atomic_flags; /* Flags needing atomic access. */
struct restart_block restart_block;
pid_t pid;
pid_t tgid;
#ifdef CONFIG_CC_STACKPROTECTOR
/* Canary value for the -fstack-protector gcc feature */
unsigned long stack_canary;
#endif
/*
* pointers to (original) parent process, youngest child, younger sibling,
* older sibling, respectively. (p->father can be replaced with
* p->real_parent->pid)
*/
struct task_struct __rcu *real_parent; /* real parent process */
struct task_struct __rcu *parent; /* recipient of SIGCHLD, wait4() reports */
/*
* children/sibling forms the list of my natural children
*/
struct list_head children; /* list of my children */
struct list_head sibling; /* linkage in my parent's children list */
struct task_struct *group_leader; /* threadgroup leader */
/*
* ptraced is the list of tasks this task is using ptrace on.
* This includes both natural children and PTRACE_ATTACH targets.
* p->ptrace_entry is p's link on the p->parent->ptraced list.
*/
struct list_head ptraced;
struct list_head ptrace_entry;
/* PID/PID hash table linkage. */
struct pid_link pids[PIDTYPE_MAX];
struct list_head thread_group;
struct list_head thread_node;
struct completion *vfork_done; /* for vfork() */
int __user *set_child_tid; /* CLONE_CHILD_SETTID */
int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
cputime_t utime, stime, utimescaled, stimescaled;
cputime_t gtime;
struct prev_cputime prev_cputime;
#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
seqlock_t vtime_seqlock;
unsigned long long vtime_snap;
enum {
VTIME_SLEEPING = 0,
VTIME_USER,
VTIME_SYS,
} vtime_snap_whence;
#endif
unsigned long nvcsw, nivcsw; /* context switch counts */
u64 start_time; /* monotonic time in nsec */
u64 real_start_time; /* boot based time in nsec */
/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
unsigned long min_flt, maj_flt;
struct task_cputime cputime_expires;
struct list_head cpu_timers[3];
/* process credentials */
const struct cred __rcu *real_cred; /* objective and real subjective task
* credentials (COW) */
const struct cred __rcu *cred; /* effective (overridable) subjective task
* credentials (COW) */
char comm[TASK_COMM_LEN]; /* executable name excluding path
- access with [gs]et_task_comm (which lock
it with task_lock())
- initialized normally by setup_new_exec */
/* file system info */
struct nameidata *nameidata;
#ifdef CONFIG_SYSVIPC
/* ipc stuff */
struct sysv_sem sysvsem;
struct sysv_shm sysvshm;
#endif
#ifdef CONFIG_DETECT_HUNG_TASK
/* hung task detection */
unsigned long last_switch_count;
#endif
/* filesystem information */
struct fs_struct *fs;
/* open file information */
struct files_struct *files;
/* namespaces */
struct nsproxy *nsproxy;
/* signal handlers */
struct signal_struct *signal;
struct sighand_struct *sighand;
sigset_t blocked, real_blocked;
sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */
struct sigpending pending;
unsigned long sas_ss_sp;
size_t sas_ss_size;
int (*notifier)(void *priv);
void *notifier_data;
sigset_t *notifier_mask;
struct callback_head *task_works;
struct audit_context *audit_context;
#ifdef CONFIG_AUDITSYSCALL
kuid_t loginuid;
unsigned int sessionid;
#endif
struct seccomp seccomp;
/* Thread group tracking */
u32 parent_exec_id;
u32 self_exec_id;
/* Protection of (de-)allocation: mm, files, fs, tty, keyrings, mems_allowed,
* mempolicy */
spinlock_t alloc_lock;
/* Protection of the PI data structures: */
raw_spinlock_t pi_lock;
struct wake_q_node wake_q;
#ifdef CONFIG_RT_MUTEXES
/* PI waiters blocked on a rt_mutex held by this task */
struct rb_root pi_waiters;
struct rb_node *pi_waiters_leftmost;
/* Deadlock detection and priority inheritance handling */
struct rt_mutex_waiter *pi_blocked_on;
#endif
#ifdef CONFIG_DEBUG_MUTEXES
/* mutex deadlock detection */
struct mutex_waiter *blocked_on;
#endif
#ifdef CONFIG_TRACE_IRQFLAGS
unsigned int irq_events;
unsigned long hardirq_enable_ip;
unsigned long hardirq_disable_ip;
unsigned int hardirq_enable_event;
unsigned int hardirq_disable_event;
int hardirqs_enabled;
int hardirq_context;
unsigned long softirq_disable_ip;
unsigned long softirq_enable_ip;
unsigned int softirq_disable_event;
unsigned int softirq_enable_event;
int softirqs_enabled;
int softirq_context;
#endif
#ifdef CONFIG_LOCKDEP
# define MAX_LOCK_DEPTH 48UL
u64 curr_chain_key;
int lockdep_depth;
unsigned int lockdep_recursion;
struct held_lock held_locks[MAX_LOCK_DEPTH];
gfp_t lockdep_reclaim_gfp;
#endif
/* journalling filesystem info */
void *journal_info;
/* stacked block device info */
struct bio_list *bio_list;
#ifdef CONFIG_BLOCK
/* stack plugging */
struct blk_plug *plug;
#endif
/* VM state */
struct reclaim_state *reclaim_state;
struct backing_dev_info *backing_dev_info;
struct io_context *io_context;
unsigned long ptrace_message;
siginfo_t *last_siginfo; /* For ptrace use. */
struct task_io_accounting ioac;
#if defined(CONFIG_TASK_XACCT)
u64 acct_rss_mem1; /* accumulated rss usage */
u64 acct_vm_mem1; /* accumulated virtual memory usage */
cputime_t acct_timexpd; /* stime + utime since last update */
#endif
#ifdef CONFIG_CPUSETS
nodemask_t mems_allowed; /* Protected by alloc_lock */
seqcount_t mems_allowed_seq; /* Seqence no to catch updates */
int cpuset_mem_spread_rotor;
int cpuset_slab_spread_rotor;
#endif
#ifdef CONFIG_CGROUPS
/* Control Group info protected by css_set_lock */
struct css_set __rcu *cgroups;
/* cg_list protected by css_set_lock and tsk->alloc_lock */
struct list_head cg_list;
#endif
#ifdef CONFIG_FUTEX
struct robust_list_head __user *robust_list;
#ifdef CONFIG_COMPAT
struct compat_robust_list_head __user *compat_robust_list;
#endif
struct list_head pi_state_list;
struct futex_pi_state *pi_state_cache;
#endif
#ifdef CONFIG_PERF_EVENTS
struct perf_event_context *perf_event_ctxp[perf_nr_task_contexts];
struct mutex perf_event_mutex;
struct list_head perf_event_list;
#endif
#ifdef CONFIG_DEBUG_PREEMPT
unsigned long preempt_disable_ip;
#endif
#ifdef CONFIG_NUMA
struct mempolicy *mempolicy; /* Protected by alloc_lock */
short il_next;
short pref_node_fork;
#endif
#ifdef CONFIG_NUMA_BALANCING
int numa_scan_seq;
unsigned int numa_scan_period;
unsigned int numa_scan_period_max;
int numa_preferred_nid;
unsigned long numa_migrate_retry;
u64 node_stamp; /* migration stamp */
u64 last_task_numa_placement;
u64 last_sum_exec_runtime;
struct callback_head numa_work;
struct list_head numa_entry;
struct numa_group *numa_group;
/*
* numa_faults is an array split into four regions:
* faults_memory, faults_cpu, faults_memory_buffer, faults_cpu_buffer
* in this precise order.
*
* faults_memory: Exponential decaying average of faults on a per-node
* basis. Scheduling placement decisions are made based on these
* counts. The values remain static for the duration of a PTE scan.
* faults_cpu: Track the nodes the process was running on when a NUMA
* hinting fault was incurred.
* faults_memory_buffer and faults_cpu_buffer: Record faults per node
* during the current scan window. When the scan completes, the counts
* in faults_memory and faults_cpu decay and these values are copied.
*/
unsigned long *numa_faults;
unsigned long total_numa_faults;
/*
* numa_faults_locality tracks if faults recorded during the last
* scan window were remote/local or failed to migrate. The task scan
* period is adapted based on the locality of the faults with different
* weights depending on whether they were shared or private faults
*/
unsigned long numa_faults_locality[3];
unsigned long numa_pages_migrated;
#endif /* CONFIG_NUMA_BALANCING */
#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
struct tlbflush_unmap_batch tlb_ubc;
#endif
struct rcu_head rcu;
/*
* cache last used pipe for splice
*/
struct pipe_inode_info *splice_pipe;
struct page_frag task_frag;
#ifdef CONFIG_TASK_DELAY_ACCT
struct task_delay_info *delays;
#endif
#ifdef CONFIG_FAULT_INJECTION
int make_it_fail;
#endif
/*
* when (nr_dirtied >= nr_dirtied_pause), it's time to call
* balance_dirty_pages() for some dirty throttling pause
*/
int nr_dirtied;
int nr_dirtied_pause;
unsigned long dirty_paused_when; /* start of a write-and-pause period */
#ifdef CONFIG_LATENCYTOP
int latency_record_count;
struct latency_record latency_record[LT_SAVECOUNT];
#endif
/*
* time slack values; these are used to round up poll() and
* select() etc timeout values. These are in nanoseconds.
*/
unsigned long timer_slack_ns;
unsigned long default_timer_slack_ns;
#ifdef CONFIG_KASAN
unsigned int kasan_depth;
#endif
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
/* Index of current stored address in ret_stack */
int curr_ret_stack;
/* Stack of return addresses for return function tracing */
struct ftrace_ret_stack *ret_stack;
/* time stamp for last schedule */
unsigned long long ftrace_timestamp;
/*
* Number of functions that haven't been traced
* because of depth overrun.
*/
atomic_t trace_overrun;
/* Pause for the tracing */
atomic_t tracing_graph_pause;
#endif
#ifdef CONFIG_TRACING
/* state flags for use by tracers */
unsigned long trace;
/* bitmask and counter of trace recursion */
unsigned long trace_recursion;
#endif /* CONFIG_TRACING */
#ifdef CONFIG_MEMCG
struct memcg_oom_info {
struct mem_cgroup *memcg;
gfp_t gfp_mask;
int order;
unsigned int may_oom:1;
} memcg_oom;
#endif
#ifdef CONFIG_UPROBES
struct uprobe_task *utask;
#endif
#if defined(CONFIG_BCACHE) || defined(CONFIG_BCACHE_MODULE)
unsigned int sequential_io;
unsigned int sequential_io_avg;
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
#endif
int pagefault_disabled;
/* CPU-specific state of this task */
struct thread_struct thread;
/*
* WARNING: on x86, 'thread_struct' contains a variable-sized
* structure. It *MUST* be at the end of 'task_struct'.
*
* Do not put anything below here!
*/
};
Linux : kernel code : inode
version : linux-4.3.3
file : linux/fs.h
struct inode {
umode_t i_mode;
unsigned short i_opflags;
kuid_t i_uid;
kgid_t i_gid;
unsigned int i_flags;
#ifdef CONFIG_FS_POSIX_ACL
struct posix_acl *i_acl;
struct posix_acl *i_default_acl;
#endif
const struct inode_operations *i_op;
struct super_block *i_sb;
struct address_space *i_mapping;
#ifdef CONFIG_SECURITY
void *i_security;
#endif
/* Stat data, not accessed from path walking */
unsigned long i_ino;
/*
* Filesystems may only read i_nlink directly. They shall use the
* following functions for modification:
*
* (set|clear|inc|drop)_nlink
* inode_(inc|dec)_link_count
*/
union {
const unsigned int i_nlink;
unsigned int __i_nlink;
};
dev_t i_rdev;
file : linux/fs.h
struct inode {
umode_t i_mode;
unsigned short i_opflags;
kuid_t i_uid;
kgid_t i_gid;
unsigned int i_flags;
#ifdef CONFIG_FS_POSIX_ACL
struct posix_acl *i_acl;
struct posix_acl *i_default_acl;
#endif
const struct inode_operations *i_op;
struct super_block *i_sb;
struct address_space *i_mapping;
#ifdef CONFIG_SECURITY
void *i_security;
#endif
/* Stat data, not accessed from path walking */
unsigned long i_ino;
/*
* Filesystems may only read i_nlink directly. They shall use the
* following functions for modification:
*
* (set|clear|inc|drop)_nlink
* inode_(inc|dec)_link_count
*/
union {
const unsigned int i_nlink;
unsigned int __i_nlink;
};
dev_t i_rdev;
loff_t i_size;
struct timespec i_atime;
struct timespec i_mtime;
struct timespec i_ctime;
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
unsigned short i_bytes;
unsigned int i_blkbits;
blkcnt_t i_blocks;
#ifdef __NEED_I_SIZE_ORDERED
seqcount_t i_size_seqcount;
#endif
/* Misc */
unsigned long i_state;
struct mutex i_mutex;
unsigned long dirtied_when; /* jiffies of first dirtying */
unsigned long dirtied_time_when;
struct hlist_node i_hash;
struct list_head i_io_list; /* backing dev IO list */
#ifdef CONFIG_CGROUP_WRITEBACK
struct bdi_writeback *i_wb; /* the associated cgroup wb */
/* foreign inode detection, see wbc_detach_inode() */
int i_wb_frn_winner;
u16 i_wb_frn_avg_time;
u16 i_wb_frn_history;
#endif
struct list_head i_lru; /* inode LRU list */
struct list_head i_sb_list;
union {
struct hlist_head i_dentry;
struct rcu_head i_rcu;
};
u64 i_version;
atomic_t i_count;
atomic_t i_dio_count;
atomic_t i_writecount;
#ifdef CONFIG_IMA
atomic_t i_readcount; /* struct files open RO */
#endif
const struct file_operations *i_fop; /* former ->i_op->default_file_ops */
struct file_lock_context *i_flctx;
struct address_space i_data;
struct list_head i_devices;
union {
struct pipe_inode_info *i_pipe;
struct block_device *i_bdev;
struct cdev *i_cdev;
char *i_link;
};
__u32 i_generation;
#ifdef CONFIG_FSNOTIFY
__u32 i_fsnotify_mask; /* all events this inode cares about */
struct hlist_head i_fsnotify_marks;
#endif
void *i_private; /* fs or device private pointer */
};
Subscribe to:
Posts (Atom)